Ubuntu下如何自动重启挂掉了的服务(以memcached为例)

Ubuntu下如何自动重启挂掉了的服务(以memcached为例)

最近一个Ubuntu下的memcached经常crash,进程消失。Ubuntu下的这个service也没有log,不知道具体什么情况。基本上一天要失败好几次,老是发现了去手工启动一下。挺麻烦的。

查了一下Ubuntu是用Upstart管理service的,Upstart本身有提供service失败以后的重启配置,具体参数见这里

以我的Ubuntu 16.04为例,memcached的service配置文件位于 /etc/systemd/system/multi-user.target.wants/memcached.service
打开这个文件,在[Service]这个小结,添加高亮选中的这两行。

Restart=always
RestartSec=3

然后重新load一下Service的配置, systemctl daemon-reload
再重启一下memcached这个Service, systemctl restart memcached

好了,现在可以测试一下效果了。
先用ps看一下现在的memcached进程号是多少,这里是“18755”。
然后kill掉这个进程,继续用ps查找。
可以看到第一次跑ps命令的时候memcached的进程还没起来。
第二次跑ps命令式,memcached已经起来了,新的进程号是“18835”。Cool,搞定!

这是Ubuntu upstart的方式来保护Service,参考的这篇文章

也可以通过安装Monit,使用Monit这个tool来配置要守护那些运行着的程序,如何检查程序是否运行正常,需不需要重启或者启动。可以参考这里

leon

每天进步一点点
Close Menu