我在init.d
目录中创建符号链接:
ln -s /myservice.jar /etc/init.d/myservice
。
重新启动后,系统符号链接将替换为常规文件。
ls -l /etc/init.d/myservice
重启前输出:
lrwxrwxrwx 1 root root 30 Mar 31 12:34 /etc/init.d/myservice -> /myservice.jar
重启后:
-rwxrwxrwx 1 root root 41912304 Mar 31 12:40 /etc/init.d/myservice.jar
为什么会发生这种情况?
更新。服务器上使用的是ISPmanager,这会是一个问题吗?
答案1
如果你执行会发生什么
$ java -jar /etc/init.d/myservice
它是否按预期工作?它是否恰好在运行命令的那一刻替换myservice
为?如果是这样,那么我们就有了关于您所描述的神秘行为的线索。myservice.jar
java -jar
Jar 文件被设计为可移植的,而符号链接肯定不是,所以我希望这种行为是 Java 方面为了满足其类路径需求而进行的一些自动更正的直接结果。
问候,米夏
答案2
会service myservice start
开始你的申请吗? ( service myservice.jar start
)
更重要的是,会service myservice stop
阻止你的申请吗?
文件中/etc/init.d
是服务文件。
它们应该
start|stop|status|restart
作为唯一的参数来调用。 (|
代表或)他们应该是联系在一起的从
/etc/rcX.d
其中 X 处于运行级别(0 到 6)。此外,一些指示告诉何时启动它们(文件系统启动之前或之后?网络启动之前或之后?数据库?网络服务器?),因此 rcinit 将解析它们。