Bence senin sorunun ortam değişkeninin içeriğindeki alandan kaynaklanıyor. Sistem dökümanlarındaki örneklere bakıldığında, ödev tek bir dize olmalıdır:
Örnek:
Environment="ONE=one" 'TWO=two two'
ExecStart=/bin/echo $ONE $TWO ${TWO}
Çalıştırır Bu / bin / dört argümanlarla yankı: one, two, two, ve two two.
Örnek:
Environment=ONE='one' "TWO='two two' too" THREE=
ExecStart=/bin/echo ${ONE} ${TWO} ${THREE}
ExecStart=/bin/echo $ONE $TWO $THREE
Yankı Bu sonuçlar argümanlarla ilk kez iki kez çağrıldığını
'one', 'two two' too, ve argümanlarla ikinci kez
one, two two, too.
Bunu aşağıdaki servisle test ettim (tüm ödevin etrafındaki alıntıları not alın):
[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
Ve istenen çıktıyı 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
Tabii ki, bunun EnvironmentFileyerine kullanmak daha kolay olurdu . Şununla değiştirmek, Environmentistenen sonucu vermiştir:
EnvironmentFile=/tmp/foo
Nerede /tmp/fooiçeriyordu (tırnak eksikliği dikkat edin):
CATALINA_OPTS=-Dappserver.home=/var/lib/archiva/apache-tomcat-current -Dappserver.base=/var/lib/archiva/apache-tomcat-current
CATALINA_OPTSdesystemdApache için çevretomcatkullanarak 7.0.61)EnvironmentFilegerçekten gitmek yoludur. Teşekkürler!