Ubuntu Upstart 脚本在启动和停止时挂起

Sim*_*ide 7 scripting ubuntu upstart

我有一个启动自定义码头服务器的新贵脚本。当我什么sudo start [myservice]都没有发生。随后,将其sudo status [myservice]显示为:[myservice] start/killed, process 3586

这是 /etc/init/[myservice].conf 中的脚本:

description "[description]"
author "[my name and email]"
start on runlevel [2345]
stop on runlevel [016]
respawn
expect fork
script
    sudo -u www-data /path/to/grafserv-start.sh >> /tmp/upstart.log 2>&1
end-script
Run Code Online (Sandbox Code Playgroud)

这里是grafserv-start.sh

#!/bin/bash
/usr/bin/java -Djetty.port=3070 -jar /path/to/grafserv/trunk/start.jar
echo "Done starting GrafServ"
Run Code Online (Sandbox Code Playgroud)

我尝试将脚本命令的输出重定向到 tmp 日志文件,但从未创建该文件。当我开始它时,我只是挂起,直到我 ^C。另外,我尝试用 strace 运行它,但这给了我很多关于套接字的东西。

小智 2

sudo -u www-data
Run Code Online (Sandbox Code Playgroud)

...如果提示输入密码,则会挂起。您是否检查过“启动脚本”运行的用户是否具有 sudoers 权限来执行此操作?

  • 你可以在 sudo 中添加“-n”,这样它会出现错误而退出,而不是等待密码。 (2认同)