系统重启后,init.d目录中的符号链接被替换为常规文件

系统重启后,init.d目录中的符号链接被替换为常规文件

我在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.jarjava -jar

Jar 文件被设计为可移植的,而符号链接肯定不是,所以我希望这种行为是 Java 方面为了满足其类路径需求而进行的一些自动更正的直接结果。

问候,米夏

答案2

service myservice start开始你的申请吗? ( service myservice.jar start)

更重要的是,会service myservice stop阻止你的申请吗?

文件中/etc/init.d是服务文件。

  1. 它们应该start|stop|status|restart作为唯一的参数来调用。 (|代表或)

  2. 他们应该是联系在一起的 /etc/rcX.d其中 X 处于运行级别(0 到 6)。

  3. 此外,一些指示告诉何时启动它们(文件系统启动之前或之后?网络启动之前或之后?数据库?网络服务器?),因此 rcinit 将解析它们。

相关内容