Shell脚本监控程序运行情况(重启程序)
使用Linux系统时经常需要监控程序运行情况,比如最近我遇到了一个情况就是一个控制程序偶尔会在运行中退出,在这种情况下我需要立即重启该程序。最后在谢枫同学脚本的基础上完成了重启脚本。
目前遇见了两种情况: 一是程序是一个可执行文件; 二是使用python打开的多个程序。两种的区别在哪里呢?对于前者,它的进程名字由路径名字和程序名字组成,比如:
我有个程序是qt生成的可执行文件,名字为Manipulator,路径是/home/mk90/Documents/qt_exercise/build-Manipulator-Desktop-Debug
输入命令**(命令的含义在下面再解释)**
ps -ef | grep Manipulator|grep -v grep
结果是
mk90 20604 18895 0 19:11 ? 00:00:00 /home/mk90/Documents/qt_exercise/build-Manipulator-Desktop-Debug/Manipulator
对于后者,他的进程名字既有python字眼,又有程序名字,但是没有路径。比如有一个test.py程序,使用
python test.py
打开程序,然后在打开一个新的终端输入:
ps -ef | grep python|grep -v grep
或者
ps -ef | grep test.py|grep -v grep
都能得到结果:
mk90 3345 3307 0 21:12 pts/1 00:00:00 python test.py
<