Linux守护进程在Java位置编写

Linux守护进程在Java位置编写,java,linux,standards,daemon,Java,Linux,Standards,Daemon,我目前正在编写一个Java守护进程。我正在编写一个包含标准守护程序命令(start、stop、restart、status)的脚本,并且我正在尝试决定在安装守护程序时应该在哪里进行操作 我目前的想法是: PID文件:/var/run/myapp.PID 守护程序脚本:/etc/init.d/myapp Java应用程序(.jar):/usr/bin/myapp 日志:/var/log/myapp.err、/var/log/myapp.log、/var/log/myapp.info(你知道了) C

我目前正在编写一个Java守护进程。我正在编写一个包含标准守护程序命令(start、stop、restart、status)的脚本,并且我正在尝试决定在安装守护程序时应该在哪里进行操作

我目前的想法是:
PID文件:/var/run/myapp.PID
守护程序脚本:/etc/init.d/myapp
Java应用程序(.jar):/usr/bin/myapp
日志:/var/log/myapp.err、/var/log/myapp.log、/var/log/myapp.info(你知道了)
Configs:/etc/myapp.conf(如果将来我有多个应用程序,请转到这里)


我还不熟悉Linux目录结构,所以如果我做错了什么,请告诉我。最让我困惑的是,我的Java应用程序是一个.jar文件(归档文件),而不是二进制文件。那么这是否意味着/usr/bin/不是它的“正确”位置?

您可以将
.jar
文件放入
/usr/lib/myapp/myapp.jar
中,并使启动脚本执行
java-j/usr/lib/myapp/myapp.jar


从这方面看,jar实际上是一个库,由
/usr/bin/java
二进制文件使用,因此这些位置对我来说很好。

关于
/usr/lib/myapp/myapp.jar
的建议是正确的,但是
/usr/lib
是针对特定于体系结构的文件的,因为Java
jar
归档文件是平台独立的,
/usr/share/myapp/myapp.jar
是一个更好的位置。

我从来没有想过会这样!我最初认为.jar文件是一个库,但感觉很奇怪,因为它是我正在编写的应用程序。但是当你这样说的时候,它是完全有道理的。谢谢小心类路径地狱;)您可能需要重新访问清单,以防守护进程依赖于其他库(并且您使用了相对路径)