Development

systemd units 파일에서 파일에 있는 환경 변수 사용하기

chbae 2023. 4. 22. 06:54
728x90
반응형

아래와 같이 systemd service 에서 특정파일에 있는 환경 변수를 사용할 때의 방법이다. 필자가 엄청 삽질하다 아래 Reference 에 있는 블로그를 발견하고 쉽게 해결 했다.

 

Service file

 ...  
 [Service]  
 ...  
 EnvironmentFile=/etc/conf.d/tomcat7  
 ExecStart=/usr/share/tomcat7/bin/startup.sh $CATALINA_OPTS  
 ExecStop=/usr/share/tomcat7/bin/shutdown.sh  
 ...

 

/etc/conf.d/tomcat7

 ...  
 CATALINA_OPTS=-Xms512m -Xmx1024m  
 ...

 

위의 내용이 최종 해결된 것이고 처음에는 $CATALINA_OPTS가 아닌 ${CATALINA_OPTS} 를 사용하고 환경변수 파일에도 CATALINA_OPTS="-Xms512m -Xmx1024m"으로 사용했다.

 

  • ${CATALINA_OPTS}와 $CATALINA_OPTS가 systemd의 환경변수를 가지고 올 때 다르게 사용된다고 한다.
  • $CATALINA_OPTS in the other hand will split CATALINA_OPTS around spaces it contains and feed them to the process. 

Reference:

 
728x90