我有一些在Rasberry pi上连续运行的java代码(来自终端)并且正在收听Twitter流并将数据保存到磁盘/ usb。
我想知道检测程序是否仍在运行的首选方法是什么,以便我可以采取适当的措施并尝试重新启动应用程序?
我希望通过这种方式我可以检测到程序失败,发送电子邮件通知我并尝试重新运行代码。在服务器环境中运行它是最好的方法吗?
答案 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父母可以监控孩子的死亡。