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 EnvironmentFile
yerine kullanmak daha kolay olurdu . Şununla değiştirmek, Environment
istenen sonucu vermiştir:
EnvironmentFile=/tmp/foo
Nerede /tmp/foo
iç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_OPTS
desystemd
Apache için çevretomcat
kullanarak 7.0.61)EnvironmentFile
gerçekten gitmek yoludur. Teşekkürler!