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

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

내 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 단위 파일의 맨페이지에서는 이 동작을 찾을 수 없습니다. 과제에 대한 공식 문서는 어디에 있나요 =-?

답변1

이 내용은 다음과 같이 기록됩니다.systemd.exec:

EnvironmentFile=

[...]

전달된 인수는 절대 파일 이름이거나 선택적으로 -" " 접두사가 붙는 와일드카드 표현식이어야 합니다. 즉, 파일이 없으면 파일을 읽을 수 없으며 오류나 경고 메시지가 기록되지 않습니다.

그리고systemd.service:

ExecStart=

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

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

ExecStartPre=,ExecStartPost=

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

(systemd 지시문에 대한 가장 완전한 문서는 다음을 참조하세요.systemd.directives.)

답변2

게다가 이런 라인도

이후=-.마운트

또 다른 "같음 마이너스" 구문처럼 보이지만 이는 단지 After=특수 시스템 장치 -.mount(예: 루트 마운트 지점)를 나열하는 명령일 뿐입니다. 문서:https://www.freedesktop.org/software/systemd/man/systemd.special.html#-.mount

관련 정보