小编Kir*_*kan的帖子

正确的自定义 systemd 服务的推荐约定是什么?

我有一个二进制文件,没有任何内置命令来重新启动或关闭它创建的进程。在查看了一些内置的 CentOS 服务后,我得出的结论是我不能将它们用作模板,因为它们中的很多都尊重便捷性SIGHUP等。这意味着我需要创建 .sh 脚本来运行和控制它,这就是我遇到的一些问题。单元模板有一个名为PIDFile的东西,但我在文档中找不到任何信息,如果 systemd 管理并跟踪PID它启动的进程,或者它只是指出PID file服务将自行创建的一种方式。如果它是第一个,那么如果它是通过 /bin/sh 而不是二进制文件本身执行的脚本,它将如何正确跟踪它?难道它不会捕获 的sh processPID 吗?

查看 HTTPD (Apache) 服务单元:

[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
Documentation=man:httpd(8)
Documentation=man:apachectl(8)

[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/httpd
ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND
ExecReload=/usr/sbin/httpd $OPTIONS -k graceful
ExecStop=/bin/kill -WINCH ${MAINPID}
Run Code Online (Sandbox Code Playgroud)

如果 ${MAINPID} 没有在任何地方声明,他们如何在这里引用它?

我当前的假设是我必须传递给我的 .sh 脚本参数来处理启动/停止/终止重新启动操作。这是普遍接受的做法吗?如果我要以有限用户身份运行它(这是一个我根本不敢碰的页面),那么它如何与 SElinux 一起工作 - sh 脚本也会以指定的有限用户身份运行吗?

selinux centos systemd

2
推荐指数
1
解决办法
1516
查看次数

标签 统计

centos ×1

selinux ×1

systemd ×1