Systemd は標準出力をログファイルに記録しますが、ログにも保持します。

Systemd は標準出力をログファイルに記録しますが、ログにも保持します。

こんにちは、私はDebian 11でデフォルトでNodejsバックエンドアプリケーションを実行するサービスを作成しました。これは私のサービス定義です。

[Unit]
Description=Opmet rest api

[Service]
ExecStart=node /media/data/opmet_rest_api/dist/main.js
Restart=always
User=root
# Note Debian/Ubuntu uses 'nogroup', RHEL/Fedora uses 'nobody'
Group=nogroup
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/media/data/opmet_rest_api/
StandardOutput=append:/var/log/opmet/opmet.log
StandardError=append:/var/log/opmet/opmet.log

[Install]
WantedBy=multi-user.target

これまではstdoutすべての出力を書いていますが、/var/log/opmet/opmet.log 私の質問はjournalctl

これで実行すると、開始メッセージjournalctl -u opmet.serviceと停止メッセージのみが表示されます。

-- Journal begins at Mon 2023-03-13 12:08:51 UTC, ends at Tue 2023-10-17 18:21:25 UTC. --
oct 17 17:09:15 rectared09d systemd[1]: Started Opmet rest api.
oct 17 17:38:31 rectared09d systemd[1]: Stopping Opmet rest api...
oct 17 17:38:31 rectared09d systemd[1]: opmet.service: Succeeded.
oct 17 17:38:31 rectared09d systemd[1]: Stopped Opmet rest api.
oct 17 17:38:31 rectared09d systemd[1]: opmet.service: Consumed 4.470s CPU time.
oct 17 17:51:45 rectared09d systemd[1]: Started Opmet rest api.

よろしくお願いします。

関連情報