upstart启动的进程调用stop命令会杀掉其内部启动的service的问题

1.问题描述

使用upstart脚本启动进程pro1,pro1内部调用shell命令service s1 start启动了s1,此时调用stop pro1停止pro1时,s1也会终止


2.原因

因为p1启动了s1,过程如下:

2.1  p1启动service进程,service进程继承了p1的pgid

2.2 service进程启动s1进程,s1进程继承了service进程的pgid,即p1的pgid

2.3 调用stop pro1命令,upstar会发送kill命令去杀pro1所在的整个进程组,而s1属于此进程组,所以也会被杀掉


3.解决方案

pro1不要直接调用shell命令,使用ssh user@127.0.0.1 service s1 start命令启动


这样相当于是sshd进程创建了一个新的bash,去调用service命令,s1启动后与pro1不在同一个进程组,调用stop命令时即不会被杀掉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值