补丁服务文件

补丁服务文件

我想添加MY_SERVICE@SOME_SERVICE.serviceOnFailure=使其持久。例如,在 中/lib/systemd/system/apache2.service,我想[email protected]在该[Unit]部分中包含该行。

这可以通过 来完成systemctl edit。但是,如果默认情况下apache2.service包含OnFailure=(例如,更新到较新版本后),它将被我的更改覆盖。我想要默认值OnFailure=和我自己的值OnFailure=(例如,)。OnFailure=default.service [email protected]

我怎样才能实现这个目标?


默认内容/lib/systemd/system/apache2.service

[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
Environment=APACHE_STARTED_BY_SYSTEMD=true
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl graceful
PrivateTmp=true
Restart=on-abort

[Install]
WantedBy=multi-user.target

/lib/systemd/system/apache2.service之后的内容systemctl edit(添加第 4 行)

[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
[email protected]

[Service]
Type=forking
Environment=APACHE_STARTED_BY_SYSTEMD=true
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl graceful
PrivateTmp=true
Restart=on-abort

[Install]
WantedBy=multi-user.target

使用/lib/systemd/system/apache2.service新的默认服务更新后的内容(修改后的第 4 行)apache2OnFailure=

[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
OnFailure=default.service [email protected]

[Service]
Type=forking
Environment=APACHE_STARTED_BY_SYSTEMD=true
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl graceful
PrivateTmp=true
Restart=on-abort

[Install]
WantedBy=multi-user.target

答案1

如果你跑systemctl edit apache2/etc/systemd/system/apache2.service.d,默认情况下它应该在;中创建一个覆盖片段它不会编辑 中的原始内容/lib。将以下内容添加到您的代码片段中:

[Unit]
[email protected]

因为OnFailure是一个列表,并且没有在代码片段中重置,上面给出的值将添加到原始单位指定的条目中,不会替换它们。

相关内容