我與systemctl
工作,從使用命令systemctl show ssh.service -p EnvironmentFile
ssh.service單元文件得到EnvironmentFile財產的價值,但它返回空的結果。systemctl顯示不顯示幾個屬性
單位文件本身包含此屬性。例如我的單元文件看起來像這樣(cat /lib/systemd/system/ssh.service
):
[Unit]
Description=OpenBSD Secure Shell server
After=network.target auditd.service
ConditionPathExists=!/etc/ssh/sshd_not_to_be_run
[Service]
EnvironmentFile=-/etc/default/ssh
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartPreventExitStatus=255
Type=notify
[Install]
WantedBy=multi-user.target
Alias=sshd.service
而且,如果我做systemctl show ssh.service | grep EnvironmentFile
我得到:
EnvironmentFile=/etc/default/ssh (ignore_errors=yes)
幾乎所有其他屬性按預期工作,例如systemctl show ssh.service -p After
返回擴展的依賴關係:
After=network.target auditd.service systemd-journald.socket basic.target sysinit.target system.slice
與屬性相同的問題ConditionPathExists,但在這種情況下甚至grep不顯示此屬性(systemctl show ssh.service | grep ConditionPathExists
什麼也不打印)。
爲什麼會發生這種情況?以及如何從單元文件中獲取EnvironmentFile屬性而不使用grep
?