我正在使用该命令从ssh.service单元文件中获取EnvironmentFile属性的systemctl
值,但它返回空结果。systemctl show ssh.service -p EnvironmentFile
单元文件本身包含此属性。例如,我的单元文件如下所示(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
?