linux监控某个进程的运行shell脚本


该脚本实现了对指定进程名的进程进行每隔2的扫描监控,一旦发现进程不存在便重新启动。

#!/bin/sh

a=10;

while [[ @a -gt 5 ]]; do

if test $(pgrep -f $1|wc -l) -eq 2;then

sh stop.sh

gnome-terminal -x sh start.sh &

fi;

sleep 2;

done;

总结:(1)&表示当前进程又启动一个进程执行gnome-terminal命令;(2)linux下父进程挂掉,子进程不会挂,而是将子进程的父进程设为1(init进程);(3)查看后台运行进程的命令jobs -l;查看进程20197的父进程的方法 ps -ef|grep 20197。

我的问题:pgrep -f $1|wc -l 在sh中的运行情况和在终端下运行的结果是不一样的,为啥在sh中执行不存在时,是2?,欢迎评论讨论~~

相关内容