あなたの問題は環境変数の内容のスペースによるものだと思います。systemd docsの例を見ると、割り当ては単一の文字列である必要があります。
例:
Environment="ONE=one" 'TWO=two two'
ExecStart=/bin/echo $ONE $TWO ${TWO}
これは、/ binに/ 4引数でエコーを実行します:one
、two
、two
、とtwo two
。
例:
Environment=ONE='one' "TWO='two two' too" THREE=
ExecStart=/bin/echo ${ONE} ${TWO} ${THREE}
ExecStart=/bin/echo $ONE $TWO $THREE
エコーでのこの結果は、引数で初めて、二回呼び出されて
'one'
、'two two' too
、
、および引数で2回目
one
、two two
、too
。
これを次のサービスでテストしました(割り当て全体の引用符に注意してください)。
[Unit]
Description=My Daemon
[Service]
Environment='CATALINA_OPTS=-Dappserver.home=/var/lib/archiva/apache-tomcat-current -Dappserver.base=/var/lib/archiva/apache-tomcat-current'
ExecStart=/bin/echo ${CATALINA_OPTS}
[Install]
WantedBy=multi-user.target
そして、目的の出力が得られましたjournalctl
:
Apr 26 08:19:29 laptop echo[28439]: -Dappserver.home=/var/lib/archiva/apache-tomcat-current -Dappserver.base=/var/lib/archiva/apache-tomcat-current
もちろん、EnvironmentFile
代わりに使用する方が簡単です。をEnvironment
次のものに置き換えると、同じ望ましい結果が得られました。
EnvironmentFile=/tmp/foo
/tmp/foo
含まれる場所(引用符がないことに注意):
CATALINA_OPTS=-Dappserver.home=/var/lib/archiva/apache-tomcat-current -Dappserver.base=/var/lib/archiva/apache-tomcat-current
CATALINA_OPTS
する場合)、実際に使用する方法があります。ありがとう!systemd
tomcat
EnvironmentFile