我在Java中构建了一个小守护进程,我想在Unix下运行它作为服务(例如Debian 5).我已经读过有可能使用Java包装器,但是没有其他更容易实现的选项吗?我不能只使用Unix等命令xxx java -jar program.jar
吗?
好吧,如果你想在退出shell时运行java程序,以下是最简单的方法:
$nohup java -jar program.jar &
您需要在其中创建适当的脚本/etc/init.d
并将其链接到/etc/rcX.d
目录.该脚本至少应支持start
,stop
和status
参数.在启动期间,它应该java
使用适当的参数运行命令,可能通过nohup java
.然后,您应该将新启动的进程的PID保存到文件中/var/run/yourservice.pid
.stop
命令应该读取此PID文件并终止此服务.细节因分布而异,大多数发行版都提供了一些宏来使整个工作更容易.最好查看/etc/init.d
您的发行版中的其他服务示例.
此外:如果您的服务不是从网络上的其他计算机访问,而是打开某个端口,则使其不可用于防火墙.
如果您的服务处理某些"精细"数据,最好添加另一个用户并sudo
在您的/etc/init.d
文件中调用适当的命令.