linux–Systemd– 在ExecStopPost中检测服务是否退出而没有错误

linux–Systemd– 在ExecStopPost中检测服务是否退出而没有错误,第1张

概述我有一个应用程序,它完成后正常退出不应该重新启动.在此应用程序完成其业务之后,我想关闭实例(ec2).我正在考虑使用带有选项的systemd单元文件来执行此 *** 作Restart=on-failure ExecStopPost=/path/to/script.sh 应该在ExecStopPost上运行的脚本:#!/usr/bin/env bash # slee

我有一个应用程序,它完成后正常退出不应该重新启动.在此应用程序完成其业务之后,我想关闭实例(ec2).我正在考虑使用带有选项的systemd单元文件来执行此 *** 作

Restart=on-failureExecStopPost=/path/to/script.sh

应该在ExecStopPost上运行的脚本:

#!/usr/bin/env bash# sleep 1; adding sleep dIDn't help# this always comes out deactivatingservice_status=$(systemctl is-Failed app-importer) # Could also do the other way round and check for Failedif [ $service_status = "inactive" ] then  echo "Service exited normally: $service_status . Shutting down..."  #shutdown -t 5else  echo "Service dID not exit normally - $service_status"fiexit 0

问题是,当后停止运行时,我似乎无法检测服务是否正常结束,状态然后是停用,只有在我知道它是否进入失败状态之后.最佳答案您的问题是systemd在Execpoststop进程完成之前认为该服务已停用.睡觉并没有帮助,因为它只会等待更长时间. Execpoststop的想法是清理服务可能留下的任何内容,如临时文件,UNIX套接字等.服务未完成,并准备重新启动,直到清理完成.因此,如果你以这种方式看待它,那么systemd正在做什么是有意义的.

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

#!/bin/shecho running exec post script | loggersystemctl is-Failed foobar.service | loggerecho $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 exitSep 17 05:58:17  root[1669]: running exec post scriptSep 17 05:58:17  root[1671]: deactivatingSep 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 scriptSep 17 05:57:24  root[1645]: deactivatingSep 17 05:57:24  root[1647]: success,killed and TERMSep 17 05:57:24  systemd[1]: Stopped foobar.
总结

以上是内存溢出为你收集整理的linux – Systemd – 在ExecStopPost中检测服务是否退出而没有错误全部内容,希望文章能够帮你解决linux – Systemd – 在ExecStopPost中检测服务是否退出而没有错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1050385.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存