linux退出程序测试,linux – Systemd – 在ExecStopPost中检测服务是否退出而没有错误...

您的问题是systemd在ExecPostStop进程完成之前认为该服务已停用.睡觉并没有帮助,因为它只会等待更长时间. ExecPostStop的想法是清理服务可能留下的任何内容,如临时文件,UNIX套接字等.服务未完成,并准备重新启动,直到清理完成.因此,如果你以这种方式看待它,那么systemd正在做什么是有意义的.

你应该做的是检查脚本中的$SERVICE_RESULT,$EXIT_CODE和/或$EXIT_STATUS,它将告诉你服务是如何停止的.例:

#!/bin/sh

echo running exec post script | logger

systemctl is-failed foobar.service | logger

echo $SERVICE_RESULT, $EXIT_CODE and $EXIT_STATUS | logger

当服务允许运行完成时:

Sep 17 05:58:14 systemd[1]: Started foobar.

Sep 17 05:58:17 root[1663]: foobar service will now exit

Sep 17 05:58:17 root[1669]: running exec post script

Sep 17 05:58:17 root[1671]: deactivating

Sep 17 05:58:17 root[1673]: success, exited and 0

当服务在完成之前停止时:

Sep 17 05:57:22 systemd[1]: Started foobar.

Sep 17 05:57:24 systemd[1]: Stopping foobar...

Sep 17 05:57:24 root[1643]: running exec post script

Sep 17 05:57:24 root[1645]: deactivating

Sep 17 05:57:24 root[1647]: success, killed and TERM

Sep 17 05:57:24 systemd[1]: Stopped foobar.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值