systemd: sh -c exec 관용구를 사용하여 프로세스 이름에 대해 거짓말을 하고 있습니다.

systemd: sh -c exec 관용구를 사용하여 프로세스 이름에 대해 거짓말을 하고 있습니다.

나는 일부 쉘 명령을 삽입하기 위해 명령문(서비스 단위 파일)에서 이 관용어를 사용합니다 sh -c exec. ExecStart예를 들어:

ExecStart=/bin/sh -ec "exec /usr/bin/foo $(/usr/bin/foo-config)"

좋은 결과. 그런데 이 서비스에 대한 로그를 보면 프로세스 이름 shfoo. 이 관용어를 사용하여 프로세스 이름에 대해 거짓말을 할 수 있는 방법이 있습니까?

답변1

아 이거 생각보다 훨씬 쉽네요. 여기서 답을 찾았습니다.https://unix.stackexchange.com/a/229525/11995!

    SyslogIdentifier=foo

답변2

최종 구성을 위해 명령 대신 환경 파일이나 변수를 사용하는 것을 고려해 보셨나요? (테스트되지 않은) 것과 같은 것 :

Environment= ARGS=--whatever
EnvironmentFile=-/etc/foo/foo.config
ExecStart=/usr/bin/foo $ARGS

이것은 "시스템화된 방식"에 더 부합하는 것 같습니다.

관련 정보