systemd单位文件中==(等于负号)的文档


15

在我的Archlinux系统上,/usr/lib/systemd/system/mdmonitor.service文件包含以下几 行:

[Service]
Environment=  MDADM_MONITOR_ARGS=--scan
EnvironmentFile=-/run/sysconfig/mdadm
ExecStartPre=-/usr/lib/systemd/scripts/mdadm_env.sh
ExecStart=/sbin/mdadm --monitor $MDADM_MONITOR_ARGS

我怀疑(通过一些谷歌搜索确认),这=-意味着如果没有指定的文件,服务将不会失败。但是,我在systemd单元文件的联机帮助页中找不到该行为。=-作业的正式文件在哪里?


1
请注意,这只是普通=分配,而不是第二种.INI文件分配语法。
JdeBP

Answers:


20

记录在systemd.exec

EnvironmentFile=

[...]

传递的参数应该是绝对的文件名或通配符表达式,可以选择以“ -” 作为前缀,这表示如果文件不存在,则不会读取该文件,并且不会记录任何错误或警告消息。

并在systemd.service

ExecStart=

对于每个指定的命令,第一个参数必须是可执行文件的绝对路径。(可选)此文件名可以带有多个特殊字符:

表1.特殊的可执行文件前缀

ExecStartPre=ExecStartPost=

如果这些命令中的任何一个(不带前缀-)失败,则其余命令将不执行,并且该单元将被视为失败。

(要查找有关systemd指令的最完整文档,请在中查找systemd.directives。)


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.