2016-09-26 6 views
0

OS - > Ubuntuの16.04 x64の次のJavaプログラムは、それがよう</home/user>内のディレクトリにログファイルを作成し、コマンドラインから<user>として実行されんが、ログファイルは生成されません

システム・パラメーターとして渡されたjava utilロギング・プロパティー・ファイルで構成されます。同プログラムは、以下にsystemdユニットとして実行されたときに

nohup java -Duser.home=<home/<user>> -Djava.util.logging.config.file=/home/<user>/<path_to_logging.properties> -cp <jarname>.jar <MainClass> >> /dev/null 2>>/dev/null & 

しかし、プログラムは大丈夫実行します(それが代わりを/ dev/nullのファイルにパイプされたときに出力を見ることができる)が、ログファイルがあります生産されていない!!

[Unit] 
Description=Daemon Desc 

[Service] 
WorkingDirectory=/home/<user>/<app> 
ExecStart=/usr/share/java -Duser.home=/home/<user> -Djava.util.logging.config.file=/home/<user>/<path_to_logging.properties> -cp <jarname>.jar <MainClass> 

User=<user> 

[Install] 
WantedBy=multi-user.target 

ご協力いただければ幸いです。

+0

ファイル権限の問題のような音です。 systemdから実行すると、ログのプロパティを読み込み、プロパティで指定されたログファイルに書き込む権限を持つユーザーとして実行されますか? – VGR

+0

@VGR私は、ユーザ= として、logging.properties - > '-rw-r-r-- 'とlog dir-> 'drwxrwxr-x ' –

答えて

0

systemdサービスから直接javaを呼び出すのではなく、javaプログラムを起動するシェルスクリプトを呼び出すことで修正されました。それでもログファイルが生成されない理由は明らかではありません。

関連する問題