我有一个控制台应用程序(用Java编写),它应该在Linux机器上运行,直到它被停止。
记录由应用程序本身完成。
只要新版本可用,就需要停止应用程序(即我登录,停止应用程序,复制新的JAR文件,然后再次启动它)。
除了下面指定的那些之外,有哪些实现这个的选项?
已知的方法:
1)Tanuki服务包装
2)nohup java -jar myapp-1.32.jar&
答案 0 :(得分:6)
我使用Java Service Wrapper,但您已经提到了它。我认为它应该适合您的需求。
Apache Commons Daemon也很受欢迎:http://commons.apache.org/daemon/,但我从未使用它。
答案 1 :(得分:3)
我正在使用此启动脚本:http://shrubbery.homeip.net/c/display/W/Java+Daemon+Startup+Script
[更改域名 - 由wiki所有者]
答案 2 :(得分:2)
一些现代Linux发行版已切换到upstart。这是一个daeomon开始和停止所有其他服务。我肯定会调查一下。因为它解决了生产就绪启动脚本的一些棘手问题。缺点是它没有特定于Java的功能。
答案 3 :(得分:0)
还有apache commons deamons http://commons.apache.org/proper/commons-daemon/jsvc.html
Jsvc是一组库和应用程序,用于使Java应用程序更容易在UNIX上运行。
Jsvc允许应用程序(例如Tomcat)以root身份执行某些特权操作(例如绑定到端口< 1024),然后将身份切换到非特权用户。