/ usr / bin / envがsystemdログで実行可能としてマークされないようにする方法


15

この記事に記載されている情報に基づいて、tomcatアプリケーションを実行するsystemdサービスを作成しました。この記事の短いバージョンでは、適切な環境とコマンドラインを使用して、シェルスクリプトラッパーを回避し、javaを直接実行することを推奨しています。

systemdサービス全体を以下に示します(アプリ名が置き換えられています)。

[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コマンドの前にを付けることを推奨するsystemdサービスファイルがかなりあることに気付いたので、/usr/bin/env生成されたログに関する情報を見つけることができると思いました。どうやら。

javaを直接実行するこの同じパターン(startup.shラッパーではない)を使用しているときjavaではなく、実行可能ファイルを報告できますenvか?

余分な点については、サービスファイルが欠落している可能性のあるヒントやヒントがあります。systemdサービスを書いたのは今回が初めてで、ベストプラクティスについて詳しく知りたいと思っています。

回答:


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.