EnvironmentFile 변수의 내부 따옴표를 ExecStart로 전달

EnvironmentFile 변수의 내부 따옴표를 ExecStart로 전달

EnvironmentFile에는 다음이 있습니다.

EBUSD_OPTS="--scanconfig -d /dev/ttyEBUS -c /etc/ebusd --log=\"all notice\" --log=\"update error\""

.service 파일에서:

EnvironmentFile=-/etc/default/ebusd
ExecStart=/usr/bin/ebusd $EBUSD_OPTS

--log= 뒤의 따옴표가 실행 파일에 변경 없이 전달될 것으로 예상하지만 작동하지 않는 것 같습니다. 나는 모든 유형의 큰따옴표, 작은따옴표, 이중, 삼중 이스케이프 내부 따옴표, 단일 외부 따옴표 등을 시도했지만 성공하지 못했습니다.

답변1

EnvironmentFile에서 외부 따옴표를 가져옵니다.

EBUSD_OPTS=--scanconfig -d /dev/ttyEBUS -c /etc/ebusd --log="all notice" --log="update error"

ExecStart에 중괄호를 추가합니다.

ExecStart=/usr/bin/ebusd ${EBUSD_OPTS} 

또한 중괄호 뒤에 후행 공백이 있어야 했습니다.

관련 정보