시스템 로그에 / usr / bin / env가 실행 파일로 표시되지 않도록하는 방법


15

이 기사 에서 찾은 정보를 기반으로 Tomcat 응용 프로그램을 실행하는 시스템 서비스를 만들었습니다 . 이 기사의 짧은 버전은 셸 스크립트 래퍼를 피하고 적절한 환경과 명령 줄을 사용하여 Java를 직접 실행하는 것이 좋습니다.

다음은 시스템화 된 서비스 전체 (앱 이름 교체)입니다.

[Unit]
Description=MyApp Tomcat Container

[Service]
EnvironmentFile=/opt/myapp/environment
ExecStart=/usr/bin/env ${JAVA_HOME}/bin/java $JAVA_OPTS $CATALINA_OPTS \
-classpath ${CLASSPATH} \
-Dcatalina.base=${CATALINA_BASE} \
-Dcatalina.home=${CATALINA_HOME} \
-Djava.endorsed.dirs=${JAVA_ENDORSED_DIRS} \
-Djava.io.tmpdir=${CATALINA_TMPDIR} \
-Djava.util.logging.config.file=${CATALINA_BASE}/conf/logging.properties \
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \
org.apache.catalina.startup.Bootstrap start

ExecStop=/usr/bin/env $JAVA_HOME/bin/java $JAVA_OPTS \
-classpath $CLASSPATH \
-Dcatalina.base=$CATALINA_BASE \
-Dcatalina.home=$CATALINA_HOME \
-Djava.endorsed.dirs=$JAVA_ENDORSED_DIRS \
-Djava.io.tmpdir=$CATALINA_TMPDIR \
-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties \
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \
org.apache.catalina.startup.Bootstrap stop

[Install]
WantedBy=multi-user.target

이것은 내가 아는 한 잘 작동합니다. 서비스가 시작, 중지 및 상태를 올바르게보고합니다. 내가 겪고있는 문제는 다음과 같이보고 된 로그입니다 journalctl.

# journalctl -u myapp.service --since today

Sep 14 00:26:00 myserver.domain.com env[654]: MyApp:2015-09-14 00:26:00: INFO Detail irrelevant
Sep 14 00:26:00 myserver.domain.com env[654]: MyApp:2015-09-14 00:26:00: INFO Detail irrelevant
Sep 14 00:26:17 myserver.domain.com env[654]: MyApp:2015-09-14 00:26:17: INFO Detail irrelevant

env실행중인 실행 파일로 기록되는 여기를 참조하십시오 . 나는 오히려 오히려 볼 것이다java우리가 실제로 관심을 갖는 프로그램이라는 점을 고려하면 실행 파일로 간주하고 . 는 env소음이다. start 명령 앞에 접두사를 사용하는 시스템화 된 서비스 파일이 상당히 /usr/bin/env많으므로 생성 된 로그에 대한 정보를 찾을 수 있다고 가정했습니다. 분명히 아닙니다.

실행 파일을 다음과 같이보고 할 수 있습니까? javaenv동일한 패턴의 java를 직접 대신 (startup.sh 래퍼가 아닌) ?

추가 포인트를 위해 서비스 파일이 누락 될 수있는 힌트와 팁을 원합니다. 이것이 내가 체계적인 서비스를 작성한 것은 이번이 처음이며, 최고의 실무에 대해 더 배우고 싶어합니다.

답변:


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.