在ubuntu中创建一个可以启动/停止的systemd服务

在ubuntu中创建一个可以启动/停止的systemd服务

我已经构建了一个以可执行格式提供的服务器,我想将其注册为可以启动/停止/重新启动的服务。

我已阅读以下问题以及许多其他人喜欢的问题>如何使可执行文件作为服务运行?

我的问题是,如果我运行,我希望 systemctl 停止可执行进程sudo systemctl stop myexecutableservice

在我当前的情况下,如果我停止服务,后台进程仍在运行,并且我的服务器仍在接受请求。

答案1

这是最简单情况的答案。

您所需要做的就是创建/etc/systemd/system/myservice.service.这是一个带有节的 INI 文件[Service]

一个非常简单的服务如下所示:

[Service]
ExecStart=/usr/bin/myapp arg1 arg2

只需确保该服务存在,然后sudo systemctl start myservicesudo systemctl stop myservice

在本节中您还可以做很多其他事情,Service例如定义用户、工作目录、环境变量、如何管理分叉进程、如何停止进程、优先级等。请参阅 systemd.service(5)有关此部分如何工作的详细信息。

您还可以添加一个[Unit]部分,用于定义Description=将出现在日志中的部分,并可以定义与其他单元的关系。看 systemd.unit(5)

[Install]也可以声明一个部分。这将让您定义systemctl enable myservice使用时会发生什么。看 systemd.unit(5)

答案2

我的可执行文件启动了另一个进程,该进程并未在每次退出事件中被终止,因此我创建了一个新的 .service 文件并由可执行文件重新编译。现在它工作得很好。

相关内容