2009-11-26 80 views
3

我正在编写Java守护进程。我正在编写一个脚本,它具有标准守护进程命令(启动,停止,重新启动,状态),并且我正在尝试确定安装守护进程时应该在哪里进行。在Java位置写入的Linux守护进程

我现在的想法是:
PID文件: /var/run/myapp.pid
守护程序脚本: /etc/init.d/myapp
Java应用程序(。罐):的/ usr /斌/ MyApp的
日志: /var/log/myapp.err /var/log/myapp.log /var/log/myapp.info(你的想法)
CONFIGS: /etc/myapp.conf(或的/ etc/MYAPP/CONFIGS -go-如果我将来有一个以上的版本)

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

回答

2

你可以把.jar文件/usr/lib/myapp/myapp.jar,使启动脚本做java -j /usr/lib/myapp/myapp.jar

从侧面看它,罐子实际上是一个图书馆的/usr/bin/java二进制的用途,所以这些地方看起来对我好。

+0

我从来没有想过这样!我原本以.jar文件的形式将其视为一个库,但由于它是我正在编写的应用程序,所以感觉很奇怪。但是当你这样说的时候,这是非常有道理的。谢谢! – William 2009-11-26 17:00:35

+0

请注意类路径地狱;)您可能必须重新访问您的MANIFEST,以防万一您的守护进程依赖于其他库(并且您使用了相对路径) – 2009-11-26 17:05:45

2

/usr/lib/myapp/myapp.jar的建议是正确的轨道上,但/usr/lib是体系结构相关的文件 - 因为Java的jar档案是独立于平台,/usr/share/myapp/myapp.jar是一个更好的位置。