Answers:
确保您使用的是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
在下创建为root /etc/init/myprogram.conf
。
如果您的脚本需要多个命令行,请使用script
部分代替该exec
行:
# myprogram.conf
start on filesystem
script
/usr/bin/java -jar /path_to/program
echo "Another command"
end script
要为您的服务启用bash完成,请在/etc/init.d
文件夹中添加符号链接:
sudo ln -s /etc/init/myprogram.conf /etc/init.d/myprogram
然后尝试启动和停止它:
sudo service myprogram start
根据新手食谱,您可以创建pre-start
/ post-start
和pre-stop
/ post-stop
要执行的命令。
此外,我读到您想检查某个进程是否正在运行。检查此问题,并可能使用该pre-start
部分。
sudo chmod +x /etc/init.d/myprogram
。注意:您回答的方法在Ubuntu 16.04中不起作用!
您需要创建一个新贵。 http://upstart.ubuntu.com/getting-started.html
与良好的SysV初始化脚本相比,暴发户(IMHO)是一场灾难。新贵是FAR付出更多的努力,而没有太多工作要做的上行空间。话虽如此,我怀疑那里会有一些暴发户后卫,这些人会带我去完成任务;-)