早上起来发现wiki系统挂了,也许是有同学手动将其关闭了,也许是它自己关闭了。查找各种运行日志没有发现任何异常的地方。因此,需要时不时地检查一下wiki系统是否还存活着?如果不是存活的状态,则需要将其重新启动。
进程监控脚本
我们知道,查看进程的命令是ps
,通常我们更喜欢带上参数,如ps -ef
或者是ps -aux
。要查找某一个进程的时候,我们需要加上这个进程的特征字符串,比如wiki系统的进程中包含confluence字符串,我们就是用ps -ef | grep confluence
来查看wiki系统的进程存活状态,结果如下。通常情况下得到的列表除了进程本身外,还有一个就是查看这个进程状态的进程。可以看到进程12996就是当前查看进程的ID。
1 | [root@whubdccl wiki_ops]# ps -ef | grep confluence |
可以使用grep
命令的反选参数来进行过滤,即grep -v grep
去掉当前查看进程的信息。
因此,进程监控脚本可以写成如下形式:
1 |
|
$?
表示进程执行完的返回状态,为0表示正常执行,否则是异常的。
写入定时任务
使用crontab -e
写入定时任务中,如下,设置为每两个小时检查一次。
1 | * */2 * * * /root/wiki_ops/wiki_monitor.sh |
总结
这个定时任务相当于一个自动唤醒的任务,就是每隔一两个小时检查一次,如果目标进程不存活,则手动启动这个进程。大大解放系统管理员的双手,可以更好地干别的事啦。