在我的 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
Run Code Online (Sandbox Code Playgroud)
我怀疑(通过一些谷歌搜索确认)这=-意味着如果指定的文件不存在,服务不应该失败。但是我没有在 systemd 单元文件的联机帮助页中找到这种行为。=-任务的官方文件在哪里?
Ste*_*itt 37
这记录在systemd.exec:
EnvironmentFile=[...]
传递的参数应该是绝对文件名或通配符表达式,可选地以“
-”为前缀,这表示如果文件不存在,则不会读取它,并且不会记录错误或警告消息。
… 对于每个指定的命令,第一个参数必须是可执行文件的绝对路径。可选地,此文件名可以以许多特殊字符为前缀:
ExecStart=表 1. 特殊的可执行前缀
…
ExecStartPre=,ExecStartPost=… 如果这些命令中的任何一个(不以 为前缀-)失败,则不会执行其余命令,并且该单元被视为失败。
(要找到最完整的 systemd 指令文档,请在 中查找systemd.directives。)
小智 6
另外,像这样的行
之后=-.mount
看起来像另一个“等于减”语法,但它只是一个After=列出特殊系统单元-.mount(即根挂载点)的指令。文档:https://www.freedesktop.org/software/systemd/man/systemd.special.html#-.mount
| 归档时间: |
|
| 查看次数: |
14692 次 |
| 最近记录: |