应用场景
经常跑好几天的程序,有时候半夜两三点结束,想要继续算下一个又不想熬夜。就可以利用shell脚本监听进程,等到程序结束的时候直接算下一个程序。
查看监听进程
ps u 看一下正在执行的程序,记录一个要等待的pid号。
shell脚本监听
// monitor.sh
flag=1
result=1
while [ "$flag" -eq 1 ]
do
sleep 1s
PID=43552
PID_EXIST=$(ps u | awk '{print $2}'| grep -w $PID)
if [ ! $PID_EXIST ]; then
echo $(date +%F%n%T)
echo "process is finished"
flag=0
fi
done
#后面可以添加要执行的程序代码。
简单解释一下核心代码
ps u #显示当前用户的进程
awk '{print $2}' #列出第二列,即pid号
grep -w $PID #精确匹配字符串$PID
执行方法
写好脚本后给可执行权限
chmod 751 monitor.sh
可以直接在vnc终端里挂着。
或者
nohup ./monitor.sh &
还能看输出。