如何制作一个守护程序来检查程序是否正在运行(定期)并且如果不是则启动它?

我使用的是GNOME 3.18的Ubuntu GNOME 15.10,但是我不喜欢普通的应用程序启动器,所以我安装了Docky,但是Docky突然关闭,我不得不手动重启它,所以我想知道如何制作一个守护进程在后台运行的所有时间都会定期检查Docky是否正在运行,如果不运行,请运行它?

在任何您想要的位置创建脚本,最好在您的主目录中。 我想打电话给我, check_docky.bsh 。 在脚本中,执行以下操作:

 #!/bin/bash ps -ef | grep -i docky.exe | grep -v grep >/dev/null case $? in 1) sh -c "mono /usr/lib/docky/Docky.exe";; 0) exit 0;; esac 

在上面的脚本中, ps -ef | grep ps -ef | grep将查看Docky是否正在运行。 如果它没有运行,返回的退出代码是1 ,那么case语句将自动重新启动Docky 。 否则,脚本将正常退出,代码为0

确保脚本是可执行的:

 chmod +x check_docky.bsh 

然后为脚本创建一个cron作业。

首先,运行crontab如下所示:

 $ crontab -e 

然后作为新条目添加以下内容,以便从每小时的:00开始每10分钟检查一次:

 # mh dom mon dow command */10 * * * * /home//check_docky.bsh 

要显示此命令有效:

 ~$ ps -ef | grep wookie | grep -v grep ~$ echo $? 1 ~$ ps -ef | grep wookie terrance 20978 6976 0 13:53 pts/17 00:00:00 grep --color=auto wookie ~$ echo $? 0 

希望这可以帮助!