Linux下使用Supervise

今天公司一个项目中为了保护某个进程不因意外死掉,所以需要保护,用supervise的意思是监督是否死掉了,如果死掉了,则通过run脚本启动。新接触这个东西,不会用,上网一搜,额滴神啊,全是那一个,什么test.c的那个。

先说一下我是怎么做的,假设你要保护的进程叫Process,那么一定要将这个程序放到一个名为Process的目录下(对了,就是要文件名和文件夹名一致,因为supervise命令指定的是文件夹),同时和Process文件(不是文件夹)一起还要有一个叫run的文件,就是一个简单的脚本,里边写的是在进程挂掉后执行的动作,通常是再次情动该进程。假如你的文件所在的绝对路径为/root/testdir/Process/Process,那么最简单的run脚本就是

#!/bin/bash

/root/testdir/Process/Process

最主要的是supervise设置,这个东西就是那个test.c用例让我不爽的地方,什么都没说明白,或者说没说全。开始我使用命令supervise /root/testdir/Process/Process  可是这个命令似乎是个死循环(其实不是,只是一直运行不会结束),然后我再打开一个终端,pgrep Process(得到该序的进程号),kill id(id为刚才命令显示的数字),在看pgrep Process,进程号改变了,这说明杀掉了该进程后supervise再次启动了该进程。可是问题是,那个supervise程序一直在运行着啊。如果CTRL+C关掉呢,重复上边检查进程的操作,果然Process不在受supervise保护,这个该怎么办呢。正当我对此无能为力的时候想起了同事的一句话,把文件链接到service以下,开始他说这个我没听懂。这会再试试

ln -s /root/testdir/Process  /service/Process

OK!这是我赫然的发现Process进程起来了,可是我没有使用supervise命令啊?全部删除再来一遍,同样Process进程得到了保护。总的来说就是,建立Process文件夹,process文件和run文件,然后做的就是链接。

由于开始是在公司的开发环境上,我不知道是否有其他进程执行了supervise使链接到service下的文件都得到保护还是,哪位朋友如果知道可以告诉我,不胜感激!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值