我使用Maven appassembler插件围绕Java Spring应用程序生成Linux包装器脚本' myapp'。
然后我得到以下目录结构:
/home/myapp/platform/bin/myapp <== Script that I start manually
myapp脚本有&#34; -rwxr-xr-x&#34;权利和所有者设置为&#34; myapp:myapp&#34;并且脚本设置为以用户&#34; myapp&#34; (在构建时从Maven设置中设置)。
现在从root发出以下命令:
$ sudo ln -s /home/myapp/platform/bin/myapp /etc/init.d/service_myapp
与&#34; lrwxrwxrwx&#34;创建符号链接权利和&#34; root:root&#34;作为所有者并指向我的myapp脚本。我认为这足以让这个脚本在启动时执行。然而它似乎并没有运行。 如果我手动运行,如:
$ cd /etc/init.d/
$ ./service_myapp
然后在执行之前我提示输入密码。
任何人都可以解释这里发生的事情和/或我做错了吗?
我也试过这个:
$ cd /etc/init.d/
$ update-rc.d service_myapp defaults 20
但得到了这个:
update-rc.d: warning: /etc/init.d/service_myapp missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
Adding system startup for /etc/init.d/service_myapp ...
/etc/rc0.d/K20service_myapp -> ../init.d/service_myapp
update-rc.d: symlink: Permission denied
答案 0 :(得分:0)
系统会提示您输入密码,因为脚本中的某些命令可能需要root。
此外,在运行update-rc.d
:
sudo update-rc.d service_myapp defaults 20
最后,您的脚本必须采用SysV格式并支持start
,stop
,restart
,force-reload
和status
命令。