Systemd-Unit
systemd 單元文件中 =- (等於減號)的文件
在我的 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
我懷疑(通過一些Google搜尋確認)這
=-
意味著如果指定的文件不存在,服務不應該失敗。但是我未能在 systemd 單元文件的聯機幫助頁中找到該行為。作業的官方文件在哪裡=-
?
這記錄在
systemd.exec
:
EnvironmentFile=
$$ … $$ 傳遞的參數應該是絕對文件名或萬用字元表達式,可選前綴“
-
”,表示如果文件不存在,則不會讀取它,並且不會記錄錯誤或警告消息。
ExecStart=
… 對於每個指定的命令,第一個參數必須是執行檔的絕對路徑。或者,這個文件名可以帶有一些特殊字元的前綴: 表 1. 特殊的可執行前綴
…
ExecStartPre=
,ExecStartPost=
… 如果這些命令中的任何一個(不以 為前綴-
)失敗,則不會執行其餘命令,並且該單元被視為失敗。(要查找 systemd 指令的最完整文件,請在 中查找
systemd.directives
。)