[解決済み】systemdサービスの出力をファイルにリダイレクトする方法
2022-04-03 21:01:51
質問
の出力をリダイレクトしようとしています。
systemd
サービスをファイルに保存したいのですが、うまくいかないようです。
[Unit]
Description=customprocess
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/binary1 agent -config-dir /etc/sample.d/server
StandardOutput=/var/log1.log
StandardError=/var/log2.log
Restart=always
[Install]
WantedBy=multi-user.target
私のやり方を訂正してください。
どのように解決するのですか?
stdout/stderrを識別子付きでsyslogに送り、その出力をプログラム名で分割するようsyslogマネージャに指示する、というのがもっとエレガントな解決方法だと思います。
systemd のサービスユニットファイルで以下のプロパティを使用します。
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=<your program identifier> # without any quote
次に、ディストリビューションが rsyslog を使って syslog を管理していると仮定して、 ファイルを
/etc/rsyslog.d/<new_file>.conf
を以下の内容で作成します。
if $programname == '<your program identifier>' then /path/to/log/file.log
& stop
ここで、ログファイルをsyslogで書き込み可能にします。
# ls -alth /var/log/syslog
-rw-r----- 1 syslog adm 439K Mar 5 19:35 /var/log/syslog
# chown syslog:adm /path/to/log/file.log
rsyslogを再起動する (
sudo systemctl restart rsyslog
) で、お楽しみください。あなたのプログラムの stdout/stderr は、まだ journalctl (
sudo journalctl -u <your program identifier>
) が、選択したファイルでも利用できるようになります。
関連
-
[解決済み] 予期しないトークン 'then' 付近の構文エラー
-
[解決済み] "grep -q" のポイントは?
-
[解決済み] sshpass: コマンドが見つからないエラー
-
[解決済み] あるパターンの前にテキストを追加する際に、大文字小文字を無視してsedを使用する
-
[解決済み] scpでファイルをコピーする:接続がタイムアウトした[closed]。
-
[解決済み] php] <defunct>のプロセスを削除することはできますか?
-
[解決済み] Grep ディレクトリ内のすべてのファイルを文字列1および文字列2で検索します。
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] ワイルドカードマッチングに基づいて、現在のフォルダとサブフォルダ内のすべてのファイルを再帰的に検索するにはどうすればよいですか?
-
[解決済み] 出力をファイルや標準出力にリダイレクトする方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 readChar(con, 5L, useBytes = TRUE) のエラー : 接続を開くことができません。
-
[解決済み】stdinがターミナルでないため、疑似ターミナルが割り当てられない
-
[解決済み] CHECK_NRPE: Error - SSLハンドシェイクを完了できませんでした。
-
[解決済み] diffツールの1c1とはどういう意味ですか?
-
[解決済み] retqとretの違いは何ですか?
-
[解決済み] STRACEがEAGAINを表示する理由(リソースが一時的に使用できないため)
-
[解決済み] モスキートクライアントの取得が接続を拒否
-
[解決済み] sudoとnohupを連動させる
-
[解決済み] CMakeエラーです。このプロジェクトでは次の変数が使用されていますが、NOTFOUND に設定されています。
-
[解決済み] Grep ディレクトリ内のすべてのファイルを文字列1および文字列2で検索します。