我想在代码成功启动作业时检索进程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
答案 0 :(得分:0)
第二个变量remote_command
是在本地计算机上运行的该命令的输出。
其他一些提示:如果要创建第二个不相关的变量,请给它另一个名称。这样可以避免不必要的混淆。
您尝试使用runstatus进行下一步操作并重写已存在但未使用的变量对我来说完全不清楚。