什么是好的“贫民窟过程监视器”,除了cron和一些标准的UNIX工具之外,没有安装任何额外的软件? 即检查一个shell脚本,如果某个进程已经死了,并已死了一段时间才能重新启动? 这将是重新启动segfaulting光油过程。
您可以创build每分钟运行一个简单的bash脚本,并检查进程是否正在运行。 如果没有,则可以创build文件,并根据文件创builddate在下一次运行中作出是否重新启动清漆过程的决定。
简单的例子:
#!/bin/bash pid=$(ps -ewwo args | grep [v]arnish) check_file=/var/run/varnish.checker # minimum difference in seconds min_difference=180 if [ -f "$check_file" ] then difference=$(($(date +"%s") - $(stat -c %Y "$check_file"))) if [ $difference -gt $min_difference ] then ### start the varnish process here ### rm -f "$check_file" fi else if [ -z $pid ] then touch "$check_file" fi fi
但为什么你不想使用外部工具呢? Monit是这个东西的一个很好的工具(守护进程)。 它也可以监视许多其他进程。