除了 cron 和一些标准 UNIX 工具之外,如果不安装任何其他软件,那么“ghetto 进程监视器”有什么用呢?例如,检查 shell 脚本中某个进程是否已终止并终止了一段时间,以重新启动它?这将重新启动分段错误的 Varnish 进程。
答案1
您可以创建一个简单的 bash 脚本,每分钟运行一次并检查进程是否正在运行。如果没有,它可以创建文件,并在下一次运行中根据文件创建日期决定是否重新启动 varnish 进程。
简单示例:
#!/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
但是为什么您不想为此使用外部实用程序?监控是处理此类事务的出色工具(守护进程)。它还可以监视许多其他进程。