原文:http://www.91python.com/archives/317
前天服务器突然不能访问了,ssh是能连上去,不过网站打不开了
在服务器上查了下进程,发现nginx没有启动,也不知道其中的原因。
这让我想起来当初现在使用的这个vps也有过不能访问的情况,也是由于nginx终止了运行
就想写一个脚本进去放到crontab里去定时监控
说到在linux里要监控一个进程是否运行也有很多的方法,可以使用ps看进程里是否有相关进程
不过在linux里每个进程都有一个pid文件对它对应,在程序运行时该文件就会存在,查看它的内容为程序当前运行的进程号
所以只要判断该文件是否存在就行了 我写的检测脚本如下
再说说crontab的设置,用户可以手动修改crontab来添加定时任务
另外系统里有默认的定时任务,你会在/etc目录下发现有
cron.daily cron.hourly cron.monthly cron.weekly 四个目录,看名字就知道它们分别是按天、小时、月、星期来执行目录下的脚本
把上面的代码保存成nginx.py放到cron.hourly目录下,记得加执行权限
每小时执行一次
记得第一代码一定要加,否则将不能执行成功
昨天发现当nginx意外停止时pid文件是存在的,所以上面的代码就有问题了,在nginx意外停止后是不会自动重启的
不过也好修改,下面写出修改后的方案
有关短信发送的可参考 google的免费午餐–日历短信通知来监控服务器
还有也修改了定时任务,一小时检测一次总感觉时间太长了,就缩小到五分钟执行一次
这个要在crontab里手动编辑
重启crontab服务