如何创建脚本来检查进程是否正在运行以及何时未运行时执行一行代码?让脚本每分钟检查一次?检查进程是否正在运行,如果没有运行的脚本执行代码行
我在想是这样的:
#! /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:如果过程中发现什么都不做
*:如果有发现超过1个过程停止最后一个过程
有2个要执行的代码:
单运行的Program.exe -option1是-option2没有-option3 6
和分号后面:1
这是做正确的方式?: (单运行的Program.exe - option1是-option2否-option3 6; 1)&
我宁愿建议一些锁机制,例如,打开一个套接字,创建一个私人MMAP,从program.exe中锁定一个特定的临时文件等。如果该锁获取失败,则不做任何事情就退出。 &在你的bash脚本中,只需触发新的启动过程。 – anishsane 2014-10-07 13:54:05
@anishsane这是为了更仔细吗? – Zero 2014-10-07 15:09:29