该脚本实现了对指定进程名的进程进行每隔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?,欢迎评论讨论~~
进程监控重启脚本解析
本文介绍了一个用于监控特定进程并自动重启的Shell脚本。该脚本通过每隔2秒检查进程是否存在,若不存在则自动启动。文章还探讨了pgrep-f $1|wc-l在不同环境下执行的结果差异。
306

被折叠的 条评论
为什么被折叠?



