debian init.d脚本在重新启动后没有运行
问题描述:
我需要在系统引导(Linux-Debian)后通过.sh脚本启动我的Wildfly AS。所以,我创建了自己的脚本,应该做它的init.d:debian init.d脚本在重新启动后没有运行
#! /bin/sh
# /etc/init.d/starter
case "$1" in
start)
echo "Starting"
nohup /home/xxx/wildfly-9.0.1.Final/bin/standalone.sh &
;;
stop)
echo "Stopping"
/home/xxx/wildfly-9.0.1.Final/bin/jboss-cli.sh --connect command=:shutdown
;;
*)
echo "Usage: /etc/init.d/starter {start|stop}"
exit 1
;;
esac
exit 0
这工作,如果我用我自己的:/etc/init.d/starter start
。
然后我用命令创建符号链接:update-rc.d starter defaults
。象预期的那样创建符号链接,但在执行reboot
命令后脚本不会执行。
有人知道什么阻止我的脚本在启动后被执行吗?感谢您的建议。
答
问题是,我不知道初始脚本必须设置自己的$ PATH和其他变量。当我看到java时发现它:在/ var/log/daemon中找不到。最后,我发现野蝇有自己的修改init-debian.sh。我用它,它的工作原理。
哪个版本的Debian? Debian v6或更高版本将* update-rc.d *替换为* inserve * ...请参阅Debian Wiki [使用基于依赖关系的引导时如何添加服务](https://wiki.debian.org/LSBInitScripts/DependencyBasedBoot) – agc
@agc谢谢您的回复。我跑8.3。在man insserv中,我读到:“不建议直接执行insserv,除非您确切知道自己在做什么,否则可能导致引导系统无法运行。update-rc.d是管理init脚本的推荐接口。”所以这不是问题。 –
对不起 - 我错过了。嗯,权限,也许。在这个输出中是否有任何异常:** find /etc/rc?.d/ -name'* starter'-exec ls -l'{}'\; ; ls -l /etc/init.d/starter**通常,每个链接应该由* root *拥有,并且是文件模式'lrwxrwxrwx(0777)',文件本身具有模式'-rwxrwxr-x(0775)'。 – agc