我想创建自己的初始化脚本,使我的程序在启动时启动并通过大多数流行的 Linux 发行版中的“服务”实用程序进行控制。
要求:
- 它应该可以在不同的发行版之间移植(它至少应该支持 Debian/Ubuntu 和 RedHat/Centos)
- 它不应该依赖于任何额外安装的软件包
- 它应该控制我的程序是否成功启动或遇到某种错误
- 它应该在收到请求时可靠地停止我的程序(有时初始化脚本说“停止......确定”但它仍在运行)
例如,我可以这样做:
case "$1" in
start)
./start-jira.sh
;;
stop)
./stop-jira.sh
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
但在这种情况下,需要检查程序是否已使用“ps”正确启动并在关闭时正确终止。
寻找正确的方法。是否有任何标准可以满足所有这些 systemd、upstart 等?
谢谢
答案1
没有适用于所有 init 系统的嵌入式脚本。虽然您可以编写一个启动守护进程的脚本(类似于 tomcat 的 bin/startup.sh),但您需要一些配置文件或脚本来用于目标发行版正在使用的实际 init 系统。