Rae*_*nha 42
确保您使用的是 14.04。Ubuntu 16.04(及更高版本)使用 systemd,而不是 Upstart。
Upstart 脚本是一个放置/etc/init/在.conf.
它需要 2 个部分:一个是指示何时开始,另一个是要执行的命令。
从您的示例开始的最简单脚本是:
# myprogram.conf
start on filesystem
exec /usr/bin/java -jar /path_to/program
Run Code Online (Sandbox Code Playgroud)
在/etc/init/myprogram.conf.
如果您的脚本需要多个命令行,请使用该script部分而不是该exec行:
# myprogram.conf
start on filesystem
script
/usr/bin/java -jar /path_to/program
echo "Another command"
end script
Run Code Online (Sandbox Code Playgroud)
要为您的服务启用 bash 完成功能,请在/etc/init.d文件夹中添加一个符号链接:
sudo ln -s /etc/init/myprogram.conf /etc/init.d/myprogram
Run Code Online (Sandbox Code Playgroud)
然后尝试启动和停止它:
sudo service myprogram start
Run Code Online (Sandbox Code Playgroud)
根据upstart 食谱,您可以创建pre-start/post-start和pre-stop/post-stop要执行的命令。
此外,我读到您想检查进程是否正在运行。检查这个问题,也许使用该pre-start部分。