linux关闭服务失败怎么办,linux – 配置错误的systemd服务以通过SIGKILL终止

背景

我被要求为新服务foo_daemon创建一个systemd脚本,它有时会进入“坏状态”,并且不会通过SIGTERM死掉(可能是由于自定义信号处理程序).这对开发人员来说是有问题的,因为他们被指示通过以下方式启动/停止/重启服务:

> systemctl start foo_daemon.service

> systemctl stop foo_daemon.service

> systemctl restart foo_daemon.service

问题

有时候,由于foo_daemon进入了糟糕的状态,我们必须通过以下方式强行杀死它:

> systemctl kill -s KILL foo_daemon.service

如何为foo_daemon设置系统脚本,以便每当用户尝试停止/重新启动服务时,systemd将:

>尝试通过SIGTERM正常关闭foo_daemon.

>最多关闭/终止foo_daemon以完成2秒.

>如果进程仍处于活动状态,则尝试通过SIGKILL强制关闭foo_daemon(因此我们不存在PID被回收的风险,并且systemd会针对错误的PID发出SIGKILL).我们正在测试的设备迅速产生/分叉许多过程,so there is a rare but very real concern about PID recycling causing a problem.

>如果,在实践中,我只是对PID回收的偏执,我可以使用脚本只发出SIGKILL对进程的PID而不用担心杀死循环的PID.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值