我试图确保脚本仍在开发服务器上运行。它整理统计数据并提供Web服务,因此应该可以持续使用,但是一天几次,它会由于未知原因而死掉。当我们注意到我们只是再次启动它时,但是后部很痛苦,有些用户没有权限(或专有技术)来启动它。
我内的程序员想花几个小时来解决问题的根源,但内心的忙碌的人认为必须有一种简便的方法来检测应用程序是否未运行,然后重新启动它。
我知道我 可以 通过grep cron-script ps:
ps -A | grep appname
但是,这又是我生命中另一个小时的浪费,因为它必须做一些必须已经存在的事情……难道没有一个预制的应用程序可以传递一个可执行文件(可选地带有参数),并且可以使进程无限期地运行吗?
如果有什么不同,那就是Ubuntu。
注意:Upstart处于维护模式,已被使用systemd的Ubuntu 放弃。一个人应该查阅系统手册,详细了解如何编写服务定义。
由于您使用的是Ubuntu,因此您可能会对Upstart感兴趣,它已取代了传统的sysV init。一个关键功能是,如果服务意外终止,它可以重新启动服务。Fedora已步入新贵,而Debian处于试验阶段,因此可能值得研究。
但是,对于这种情况,这可能是过大的,因为cron脚本将需要2分钟才能实现。
#!/bin/bash if [[ ! `pidof -s yourapp` ]]; then invoke-rc.d yourapp start fi