我有一个 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 来实现此目的;它是子流程模块拥有启动和监视正在运行的子流程所需的所有工具。