시스템 단위 파일의 =-(같음-) 문서 파일이 없으면

내 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.exec같습니다.

EnvironmentFile=

[…]

전달 된 인수는 절대적으로 파일 이름 또는 와일드 카드 표현식이어야하며 선택적으로 ” -” 접두어를 붙여 파일이 존재하지 않으면 파일을 읽지 못하고 오류나 경고 메시지가 기록되지 않음을 나타냅니다.

그리고 systemd.service:

ExecStart=

지정된 각 명령에 대해 첫 번째 인수는 실행 파일의 절대 경로 여야합니다. 선택적으로이 파일 이름 앞에 여러 특수 문자가 붙을 수 있습니다.

표 1. 특수 실행 가능 접 두부

ExecStartPre=, ExecStartPost=

접두사가없는 명령 중 하나라도 -실패하면 나머지는 실행되지 않으며 장치는 실패한 것으로 간주됩니다.

시스템 지시어에 대한 가장 완벽한 설명서를 찾으려면를 참조하십시오 systemd.directives.


답변

또한, 같은 라인

이후 =-. mount

다른 “같음 빼기”-구문처럼 보이지만 대신 루트 마운트 포인트 인 After=특수 시스템 단위를 나열 하는 지시문 일뿐 -.mount입니다. 문서 : https://www.freedesktop.org/software/systemd/man/systemd.special.html#-.mount