在unix上使用sshcmd检索进程ID

时间:2014-10-14 10:53:24

标签: awk

我想在代码成功启动作业时检索进程ID。但它返回null。

我正在使用sshcmd开始工作,创建sshcmd输出的日志,然后尝试使用sshcmd在new_process_id中检索进程ID。如果我得到new_process_id,我将显示new_process_id否则我将显示在日志文件中收集的输出。但我在new_process_id中得到null。

remote_command="nohup J2EEServer/config/AMSS/scripts/${batch_job}  & "
sshcmd -q -u ${login_user} -s ${QA_HOST} "$remote_command" > /tmp/nohup_${batch_job} 2>&1

remote_command=$(ps -ef | grep ${login_user} | grep $batch_job | grep -v grep | awk '{print $2}');
new_process_id=`sshcmd -q -u ${login_user} -s ${QA_HOST} "$remote_command"`

runstatus=`grep Synchronized. /tmp/nohup_${batch_job}`


if [[ $runstatus != "" ]]
then
 new_process_id=`cat /tmp/nohup_${batch_job}`
fi

echo $new_process_id

1 个答案:

答案 0 :(得分:0)

第二个变量remote_command是在本地计算机上运行的该命令的输出。

其他一些提示:如果要创建第二个不相关的变量,请给它另一个名称。这样可以避免不必要的混淆。

您尝试使用runstatus进行下一步操作并重写已存在但未使用的变量对我来说完全不清楚。