当前位置: 首页>>技术教程>>正文


java – 如何在 Ubuntu Upstart 上创建服务

, , ,

问题描述

我有一个 Java 可执行程序,我可以通过在终端中键入 java -jar abc.jar 来运行它。\n我如何将它作为服务运行?我想通过键入 service abc start 将其作为服务运行。

最佳办法

确保您使用的是 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

/etc/init/myprogram.conf 下以 root 身份创建。

如果您的脚本需要多个命令行,请使用 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

根据 upstart cookbook ,您可以创建要执行的 pre-start /post-startpre-stop /post-stop 命令。

此外,我了解到您想检查进程是否正在运行。检查 this question 并可能使用 pre-start 部分。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/13385.html,未经允许,请勿转载。