如何创建一个脚本来检查进程是否正在运行,何时运行不执行一行代码?让脚本每分钟检查一次?
我在考虑这样的事情:
#! /bin/bash
case "$(pidof Program.exe | wc -w)" in
0) echo "Restarting Program: $(date)" >> /var/log/ProgramLog.txt
(mono-runtime Program.exe -option1 yes -option2 no -option3 6; 1) &
;;
1) # all ok
;;
*) echo "Removed double Program: $(date)" >> /var/log/ProgramLog.txt
kill $(pidof Program.exe | awk '{print $1}')
;;
esac
0:如果没有找到进程,请执行代码
1:如果发现进程什么都不做
*:如果发现有多个进程停止最后一个
要执行2个代码:
mono-runtime Program.exe -option1 yes -option2 no -option3 6
和分号后面:1
这是一种正确的方法吗?: (mono-runtime Program.exe -option1 yes -option2 no -option3 6; 1)&
答案 0 :(得分:1)
monit(小软件)将为您完成所有这些工作:
请看这里:
https://mmonit.com/monit/documentation/
答案 1 :(得分:0)
IIUC您试图确保计算机上始终存在一个程序实例。您是否考虑过将此计划添加到/etc/inittab
?使用此文件,您可以将init系统配置为为您运行程序,并在退出时重新启动(崩溃)。
更多信息:http://unixhelp.ed.ac.uk/CGI/man-cgi?inittab+5