私はsystemdサービスを持っています:
[Unit]
Description=My application
[Service]
ExecStart=/bin/Java myapp.jar
Type=simple
User=photo
オプションがあります:StandardOutput =しかし、それを使用してファイルに書き込む方法がわかりません。 https://www.freedesktop.org/software/systemd/man/systemd.exec.html
ファイルパスをどこかに置くと思っていましたが、ドキュメントではソケットとファイル記述子について説明しています。キーワードだけではなく、より多くの設定が必要なようです。
ファイルパスをどこに置くか?その使用例は見つかりません
ありがとう
使用する:
[Unit]
Description=My application
[Service]
ExecStart=/usr/bin/Java -jar myapp.jar
Type=simple
User=photo
StandardOutput=file:/var/log/logfile
ここに記載されているとおり: https://www.freedesktop.org/software/systemd/man/systemd.exec.html#StandardOutput=
この方法では、サービスが再起動するたびにログファイルの内容が上書きされることに注意してください。 StandardOutput/Error
systemdディレクティブはファイルへの追加をサポートしていません。
サービスの再起動間でファイルログを維持し、ログに新しい行を追加するだけの場合は、代わりに次を使用します。
[Unit]
Description=My application
[Service]
ExecStart=/usr/bin/sh -c 'exec /usr/bin/Java -jar myapp.jar'
Type=simple
User=photo
exec
は、シェルプログラムが、フォークせずにリダイレクトをセットアップした後、/bin/Java
プログラムに置き換えられることを意味します。したがって、/bin/Java
の直後にExecStart=
を実行する場合と違いはありません。