我有一个RingoJS part服务器(运行在Jetty之上),它是设置的一部分。
我希望多个Ringo进程在后台自动运行,在重新启动时自动启动等等。基本上,与Apache或Postgresql守护进程一样。
我研究了在后台运行进程(通过或bg)、nohup和使用屏幕维护多个上下文。我不知道这里的最佳做法是什么。
我希望能够轻松地识别正在运行的每个RingoJS进程(友好名称)。(每个应用程序一个)。然后,就能像对待apachectl或其他东西一样,轻松地开始和阻止它们。我希望进程在重新启动时自动启动,而不会受到重复的ssh会话的影响。
Screen似乎是一个不错的选择,但它的用例似乎更适合移植shell上下文,而不是用于维护长期运行的系统进程。我可以在后台运行作业,但我担心注销后的僵尸进程或无法清楚识别哪个应用程序/服务正在运行的神秘PID。
有人能提供一些关于我“应该”做些什么来达到这个结果的指点吗?
谢谢。
发布于 2011-07-05 22:14:54
您应该创建一个init服务。Ubuntu使用暴发户。http://upstart.ubuntu.com/
发布于 2011-07-05 23:58:09
对于没有内置方法作为deamon运行的应用程序,您可能希望在您创建的init/upstart脚本中使用启动-停止-守护进程命令来启动应用程序。您可以使用start- stop -daemon在后台启动一些东西,它可以将pid记录到文件系统,这样它就可以在时间成熟时停止进程。
只需查看/etc/init.d/中的许多示例,特别是签出/etc/init/骨架中的模板即可。许多现有的启动脚本都使用启动停止守护进程。包括ssh、ntp、rsync和许多其他。
https://serverfault.com/questions/287277
复制相似问题