Я думаю, що ваша проблема обумовлена простором у вмісті змінної середовища. Переглядаючи приклади із системних документів , у призначенні має бути один рядок:
Приклад:
Environment="ONE=one" 'TWO=two two'
ExecStart=/bin/echo $ONE $TWO ${TWO}
Це буде виконуватися / бен / відлуння з чотирма аргументами: 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
,
і другий раз з аргументами
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
середовищі для Apachetomcat
7.0.61) використанняEnvironmentFile
справді - це саме шлях. Спасибі!