我正在按照“作为 init.d 服务安装(系统 V)” 的章节Spring Boot 参考指南。
我无法在init.d
Centos 6.6 上创建指向我的 Java 应用程序的符号链接。
我跑完之后
sudo ln -s /var/myapp/myapp.jar /etc/init.d/myapp
当我尝试时
chmod 500 /etc/init.d/myapp
我明白了
chmod: cannot operate on dangling symlink `myapp'
当我更改常规文件而不是符号链接的权限时,如下所示:
chmod 500 myapp.jar
当然,符号链接仍然损坏,我在 中看不到它service --status-all
。
我还可以确认符号链接未正确创建,因为我无法使用以下命令启动我的应用程序
java -jar /etc/init.d/myapp
注意:当我将整个罐子复制到时,/etc/init.d/
一切正常。
我什至不知道创建一个 jar 文件的符号链接是否被认为是“好”,还是应该将其复制到 /etc/init.d/ ?
答案1
要启动应用程序,您不需要链接 jar 文件。您要启动的二进制文件是 java,并以 jar 文件作为参数。为此,您需要创建一个 init 文件(或使用 systemd 的系统的 sysyemd 单元文件)。该脚本应至少处理一个启动和一个停止参数来启动和停止您的应用程序。然后,启动将设置您的 java 主目录和应用程序所需的其他项目,然后运行 java 命令。有许多可供您使用的初始化脚本模板。