检查java代码是否正在运行,如果没有则尝试重启(unix)

时间:2014-02-28 10:51:32

标签: java unix

我有一些在Rasberry pi上连续运行的java代码(来自终端)并且正在收听Twitter流并将数据保存到磁盘/ usb。

我想知道检测程序是否仍在运行的首选方法是什么,以便我可以采取适当的措施并尝试重新启动应用程序?

我希望通过这种方式我可以检测到程序失败,发送电子邮件通知我并尝试重新运行代码。在服务器环境中运行它是最好的方法吗?

2 个答案:

答案 0 :(得分:2)

查看forever项目。如果您安装了npm,则可以使用它来安装带有-g(用于全局安装)参数的forever软件包:

npm install forever -g

然后使用start参数启动脚本。在您的情况下,这可能是带有所需java命令的bash文件(.sh)。

 forever start name-of-script-here

如果脚本失败(java中的system.exit或任何致命错误),它将永远重启。您还可以使用以下命令获取永久管理的所有正在运行的脚本的列表:

  forever list

答案 1 :(得分:1)

在Unix中,让父进程创建子进程并对其进行监视。如果它终止,则父进程可以重新启动它。

Unix fork将子pid返回给父级。

使用这种技术:Tracking the death of a child process父母可以监控孩子的死亡。