标签归档:cron

Linux定时检查程序运行状态

当初偶那么一不小心,不知怎么给PHP配了个和MySQL版本不匹配的so文件,于是我的数据库就经常因为某些兼容问题挂吖挂吖挂吖。。。动不动MySQL服务就会挂掉,但我又不知道该怎么搞出正确的库,所以只好搞这么一个时刻检查服务是否正确运行的办法来折中一下…

要让检查脚本自动定时执行,我们需要cron,linux里应该都自带了。然后我们需要一个检查脚本,来检查程序是否正在执行,如果不在执行,则启动它。

这里我已经写好了一个

#! /bin/sh
c=`ps -ef | grep 'mysql' |grep -v grep |wc -l`
if [ $c -eq 0 ]
then
	echo "MySQL is not running,starting it."
	echo `service mysql start`
	echo ""
else
	echo "MySQL running!"
fi

c=`ps -ef | grep 'apache2' |grep -v grep |wc -l`
if [ $c -eq 0 ]
then
	echo "Apache2 is not running,starting it."
	echo `service apache2 start`
	echo ""
else
	echo "Apache2 running!"
fi

c=`ps -ef | grep 'sshd' |grep -v grep |wc -l`
if [ $c -eq 0 ]
then
	echo "SSH is not running,starting it."
	echo `service sshd start`
	echo ""
else
	echo "SSH running!"
fi

echo "Service checked done!"

这是一个检查apache2,mysql和ssh三个重要服务的脚本,当发现程序不在运行,脚本就会启动服务。
继续阅读Linux定时检查程序运行状态