每x分钟重新启动一次程序?


10

我有一个使用开放源代码库的多线程Java程序,该库中有一些会导致死锁的错误,我已经报告了该错误,但是修复它需要一些时间,我需要继续使用该程序,只要它每2-3小时重启一次,它将为我完成工作。有什么办法可以使程序每隔X分钟重新启动一次?


3
您可以编写一个脚本,每2-3小时将其杀死并重新启动一次任务。
gt6989b 2012年

为了跟进@ gt6989b,我将编写一个Python脚本,该脚本简单地循环并等待2-3个小时,然后重新启动该程序。您可能会发现Python 子进程sh模块很有用。
突破

Answers:


12

您可以尝试在crontab

crontab -e

然后

 11 */3 * * * /usr/bin/pkill -f appli_name; /path/to/appli_name & &>/dev/null

crontab命令意味着:

  • 每3小时
  • 杀死appli_name
  • 在后台启动appli_name

这就是我目前解决类似问题的方式。我每天晚上0:00通过cron重新启动某些软件,因为该软件在4-5天后会损坏其状态文件。我已经将软件安装为服务,然后service <appname> restart > /dev/null 2>&1在需要的时间运行。
丹尼尔·安德森

2

我建议您为任务配置Supervisor。它可以监视进程,如果失败则重新启动,还提供输出重定向和其他不错的功能。请参阅示例以开始使用程序


+1,这似乎是一个更“干净”的解决方案crontab(尽管两种解决方案都可以正常工作)。但是,我发现Supervisor更好地配置了发送信号以及何时发送信号(即何时发送SIGTERM,以及发送之前等待多长时间SIGKILL等)。
突破
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.