启动时运行脚本失败(Ubuntu 服务器)

启动时运行脚本失败(Ubuntu 服务器)

我有一些关于如何在 ubuntu 服务器启动时运行脚本的教程,但它总是失败,状态为 203

这是我在 /etc/init.d 中编写的 script.sh 文件:

### BEGIN INIT INFO
# Provides:            Multicraft
# Required-Start:       
# Required-Stop        
# Should-Start:         
# Should-Stop:          
# X-Start-Before:       
# X-Start-After:        
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# X-Interactive:        
# Short-Description:    Multicraft daemon
# Description:          Starts the Multicraft daemon at system startup
### END INIT INFO

. /home/minecraft/multicraft/bin/multicraft -v start

exit 0

我还运行了“sudo update-rc.d script.sh defaults”命令。

谁能告诉我我做错了什么?

PS需要注意的是,当我手动运行此命令时,程序启动并且一切都按预期工作:

sudo /home/minecraft/multicraft/bin/multicraft -v start

答案1

尝试将 Sleep 添加到您的脚本中。

sleep 60
./home/minecraft/multicraft/bin/multicraft -v start
exit 0

或者

sleep 60
cd /home/minecraft/multicraft/bin/
sudo ./multicraft -v start
exit 0

或者

sleep 60
cd /home/minecraft/multicraft/bin/
sudo multicraft -v start
exit 0

如果上述代码不起作用,请增加睡眠时间。(如果您是 root 用户,则无需使用 sudo)

可能重复“启动应用程序”不起作用

答案2

好的,我找到了问题所在:我没有在 script.sh 的第一行写 #!/bin/sh。这是实际起作用的脚本:

#!/bin/sh
### BEGIN INIT INFO
# Provides:             Multicraft
# Required-Start:       
# Required-Stop        
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Multicraft daemon
# Description:          Starts the Multicraft daemon at system startup
### END INIT INFO

start() {
  ./home/minecraft/multicraft/bin/multicraft -v start
}

stop() {
  ./home/minecraft/multicraft/bin/multicraft -v stop
}

case "$1" in
  start)
    start
  ;;
  stop)
    stop
  ;;
*)

esac
exit 0

不过还是感谢@editinit 的帮助。

相关内容