linux下使用daemontools的supervise让不稳定程序死掉自动马上重启

前言:supervise是daemontools的一个工具,可以用来监控linux下程序的进程状态,当程序有一些问题(例如死掉)会根据设置 自动重启。我有一个socket服务器端需要一直监听数据,但是为了保证它不会莫名其妙的死掉而不可知,但是使用ICE(全称Internet Communications Engine)有点大材小用,所以使用了这个supervise自动重启死掉的程序并记录日志


1 下载安装配置:


wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz


wget http://www.qmail.org/moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch  #这个补丁是修复有些操作系统无法编译安装成功,过程中会报错停止的问题


tar xvzf daemontools-0.76.tar.gz


cd admin/daemontools-0.76


patch -Np1 -i ../../daemontools-0.76.errno.patch


package/compile


cd package &&  sed ‘s|/command|/usr/sbin|’ boot.inittab > boot.inittab~


mv -f boot.inittab~ boot.inittab &&  cd ../command


sed -e ‘s/command:\/usr\/local\/bin:/usr\/local\/sbin:/’  -e ‘s/command\/svc/usr\/sbin\/svc/’ svscanboot > svscanboot~


mv -f svscanboot~ svscanboot && chmod +x svscanboot


sudo /bin/cp * /usr/sbin


添加: SV:123456:respawn:/usr/sbin/svscanboot  到  /etc/inittab


2 检查是否安装成功:


# pstree -p|grep svs #然后有下面类似的进程结构(括号中数据会不一样)


|-svscanboot(22011)-+-readproctitle(22014)         |


`-svscan(22013)


3 编辑你要使用supervise的程序和配置文件


首先建立一个目录:


mkdir /home/dongwm/SocketSrv


然后编辑run配置文件:


cat /home/dongwm/SocketSrv/run #!/bin/sh echo ‘kill Socketsrv…’ kill -9 `ps -ef |grep Socketsrv.py |grep -v grep |awk ‘{print $2}’`


echo “`date +%Y%m%d-%H%M%S`” echo ‘start Socketsrv…’ python Socketsrv.py #这个就是你要让它关里的进程程序 就在Socketsrv目录下


4 启动进程: 为了排错,我使用了日志记录+日志轮转的方式()


nohup supervise /home/dongwm/SocketSrv |/usr/sbin/cronolog “/var/log/Socketsrv.log_%Y%m%d” &


表示后台运行,将输入定向到/var/log/Socketsrv.log 并且按天分日志
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值