2011-09-29 116 views
5

我有一个控制台应用程序(用Java编写),应该在Linux机器上运行,直到它停止。Linux下的Java守护进程:选择?

记录由应用程序本身完成。

只要有新版本可用(即,我登录,停止应用程序,复制新的JAR文件,然后重新启动它),就需要停止应用程序。

除了以下指定的选项之外,还有哪些实现此选项的选项?

已知的方式来做到这一点:

1)狸服务包装

2)nohup的Java的罐子MYAPP-1.32.jar &

+0

虽然它并不能完全满足你的需求,你可以看看Capistrano的。 – leonm

+0

小心找到一种服务,能够听关机信号关闭您的服务正常。 –

+0

您的控制台应用程序能够检测到它需要关闭吗? –

回答

2

一些现代Linux发行版已切换为upstart。这是一个启动和停止所有其他服务的daeomon。我肯定会研究这一点。因为它解决了生产就绪启动脚本中的一些棘手问题。缺点是它没有Java特定的功能。

+0

谢谢您的建议。您发布的链接指的是关于外部排序的维基百科文章。我不明白它与暴发户做。 –

+0

对不起,那是错误的链接。我的意思是:http://upstart.at/ – jmg

0

还有apache的公地守护程序http://commons.apache.org/proper/commons-daemon/jsvc.html

的jsvc是一组库和应用程序制作Java应用的UNIX上更轻松地运行。

Jsvc允许应用程序(例如Tomcat)以root身份执行一些特许操作(例如绑定到端口< 1024),然后将身份切换到非特权用户。