나는 일부 쉘 명령을 삽입하기 위해 명령문(서비스 단위 파일)에서 이 관용어를 사용합니다 sh -c exec
. ExecStart
예를 들어:
ExecStart=/bin/sh -ec "exec /usr/bin/foo $(/usr/bin/foo-config)"
좋은 결과. 그런데 이 서비스에 대한 로그를 보면 프로세스 이름 sh
이 foo
. 이 관용어를 사용하여 프로세스 이름에 대해 거짓말을 할 수 있는 방법이 있습니까?
답변1
아 이거 생각보다 훨씬 쉽네요. 여기서 답을 찾았습니다.https://unix.stackexchange.com/a/229525/11995!
SyslogIdentifier=foo
답변2
최종 구성을 위해 명령 대신 환경 파일이나 변수를 사용하는 것을 고려해 보셨나요? (테스트되지 않은) 것과 같은 것 :
Environment= ARGS=--whatever
EnvironmentFile=-/etc/foo/foo.config
ExecStart=/usr/bin/foo $ARGS
이것은 "시스템화된 방식"에 더 부합하는 것 같습니다.