私はいくつかのシェルコマンドを挿入するためにステートメント(サービス単位ファイル)でこの慣用語を使用します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
これは「システム化された方法」にさらに適合するようです。