Movatterモバイル変換


[0]ホーム

URL:


ほっしーの技術ネタ備忘録

技術ネタの備忘録です。基本的に私が忘れないためのものです。他の人の役にも立つといいなぁ。

この広告は、90日以上更新していないブログに表示しています。

daemon コマンドでコンソールログを残す方法

以前の記事で、daemon コマンドを使うとシェルスクリプトとかを簡単にデーモンとして常時稼働させられるねーこれ便利ねーみたいな話を書きました。

認証エラーログを見て ipfw で ban するやつ - ほっしーの技術ネタ備忘録

そのデーモン化したいプログラムから stdout とかに出力したデータをファイルに残しておく話です。

やり方は簡単でdaemon の引数に-o /var/log/hoge_console.log とか書くだけ。簡単ですね。

(ちゃんと)ログローテートもする

ただ、これだとログファイルが延々と増え続けて死にます(ストレージが)。…いやイマドキなら死なないかな?

そんなときに使うのはもちろん、newsyslog ですね。/etc とか見てると、イマドキは.dディレクトリに設定ファイルを書くのが主流っぽいですね?

という訳で、/usr/local/etc/newsyslog.conf.d/ に適当なファイル名+.conf で設定ファイルを書きます。こんな1行。

/var/log/hoge_console.log root:wheel 644 10 100 * CEXp /var/run/hoge.pid

先頭はさっきdaemon-o に渡したファイル名。たぶんフルパスじゃないと死にそう。

で、ポイントになるのはオプションCEXp の後ろにdaemon の PID ファイル名を書くこと。これでローテートを行うときにSIGHUP を送ってくれます。

なので、対応するようにdaemon の引数には-H -P /var/run/hoge.pid を追加します。-H を付けるとdaemonSIGHUP を受け取ったときにこのファイルを開きなおします。あと、似た引数で-p だと子プロセス(daemon から起動する方)の PID が書かれるので間違えないこと。

間違うとローテートしてからのログが消滅したりして悲しいことになります。

プロフィール
id:Hossyid:Hossy

技術ネタの備忘録です。基本的に私が忘れないためのものです。他の人の役にも立つといいなぁ。

検索

引用をストックしました

引用するにはまずログインしてください

引用をストックできませんでした。再度お試しください

限定公開記事のため引用できません。

読者です読者をやめる読者になる読者になる

[8]ページ先頭

©2009-2025 Movatter.jp