내 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