귀하의 문제는 환경 변수의 내용 공간에 기인한다고 생각합니다. systemd docs 의 예제를 보면 할당은 단일 문자열이어야합니다.
예:
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
아파치 환경에서tomcat
사용 7.0.61)EnvironmentFile
정말 길을 가야하는 것입니다. 감사!