Linux:进程被终止时重新启动的轻量级工具

Linux:进程被终止时重新启动的轻量级工具

我有一个 ec2 的微型实例。时不时有几个 java 进程会被终止。

我可以运行哪个工具来监视进程并在它们被终止时重新启动?

答案1

我认为从 cron-job 调用几个程序的管道不是监控服务的最简单方法。在我看来,最简单方法是使用 init 进程来监督您的进程。不幸的是,最流行的 /sbin/init 实现 (SysVinit) 不能很好地完成这一点。Upstart 更擅长这项任务,systemd 可能也是如此。

另一种选择是使用非初始化进程监控程序,例如supervise来自 daemontools 包及其克隆的程序。此类监控程序启动一次,运行受监控的进程,并且仅在发生某些事情(例如崩溃)时才做出反应。因此,它几乎不使用额外资源,并立即对崩溃做出反应。

答案2

最轻量级的方式是只运行一个 cron 任务,如果程序尚未运行,则启动它。在大多数情况下,只需简单 grep ps 即可知道它是否正在运行:

( ps x | grep $PROGRAM NAME | grep -v grep ) || /path/to/program

相关内容