启动并维持流程

启动并维持流程

我有一个 Ubuntu 盒子,上面有一个我构建的 Haskell 进程(将其视为随机服务器进程)。我想在启动时启动它并重新启动它,以防它因任何原因失败(理想情况下是某种失败的日志记录,失败的执行代码等)。

怎么做?

现在我编写了一个位于 /etc/init.d/ 中的 shell 脚本,它将启动 haskell 进程并将其输出传输到 /var/log/.log 。如何进行监控/重启?

答案1

检查/重新启动通常是通过按照以下方式编写检查器脚本来完成的:

#!/bin/sh
if ! pgrep -l name-of-executable >/dev/null 2>&1; then
    /etc/init.d/your-startup-script.sh
fi

并调用它分钟如下cron

*/N * * * * /usr/local/bin/checker-script.sh

如果你真的想监视器Haskell 进程在运行时(这样您就可以捕获其退出代码或在它终止时立即收到通知),那么您将需要一个更复杂的包装器。我通常使用 Python 来实现此目的;它是子流程模块拥有启动和监视正在运行的子流程所需的所有工具。

相关内容