如果投了大量任务又不小心关闭了终端,nohup任务结束后不会有提示,可以通过以下脚本监控:
1、通过ps aux | grep 关键词 获取任务pid
2、运行脚本+pid & 等任务结束后会在终端输出运行任务的路径
# pid=$1
pid=$1
stat=$(ps aux | awk -v pid=$pid '{a[$2]}END{if(pid in a){print "running"}else{print "done"}}' -)
info=`readlink /proc/$pid/cwd`
if [[ $stat == "running" ]];then
echo "start monitor:"$info
while [[ $stat == "running" ]];do
sleep 30s
stat=$(ps aux | awk -v pid=$pid '{a[$2]}END{if(pid in a){print "running"}else{print "done"}}' -)
done
echo "job:"$info "done"
else
echo no pid:$pid
fi