【问题标题】:Need to restart a failed background process Shell Script需要重启失败的后台进程 Shell Script
【发布时间】:2023-07-04 15:25:02
【问题描述】:

我一直在编写的一个 Bash 脚本在后台调用一些进程。我在父 Bash 脚本中使用了“等待”来等待所有后台进程完成。 运行良好。

但是,问题在于重新启动。我希望如果任何子进程结束,它应该重新开始。我使用 While 尝试了一个永久循环,并使用 pgrep 检查进程状态并发出重启。但这会消耗资源。

是否有其他可能在子后台进程停止/杀死/终止后立即重新启动它?

【问题讨论】:

标签: bash process restart


【解决方案1】:

不要重新发明*,使用 daemon command--respawn

您还应该考虑选项--acceptable--attempts--delay 以确保错误的进程不会导致无休止的重生循环(例如,当它们由于错误的命令行选项而立即死亡时)。

【讨论】:

  • 守护程序命令选项看起来不错。试了一下,还是不清楚怎么用:daemon --name processname -X executable -c /configurationfileneededbyexecutable/ 不工作。
  • 想通了。谢谢亚伦。有效!!
  • -c 用于daemon,而不是用于您要启动的进程。如果您需要将参数传递给可执行文件,则必须将其包装在脚本中。
最近更新 更多