Linuxサービスが書き出しているログファイルを一発で探し出す
LinuxというかUNIX系のプログラムは、設定ファイルの位置もログファイルの位置もプログラムごとにバラバラ、それもディストリビューションごとにまた違ってくるから扱いづらいです。
「Jenkinsのログはどこ!?」となったときにGoogle先生詣でをすることなく一発で探し出す方法をどうぞ。
1. まずサービスのプロセスIDを把握する。
ps -A -f | grep -w "サービスの起動コマンドラインに含まれていそうな単語"
オプションの-A
は「すべてのプロセスを表示」、-f
は「起動コマンドラインをフル出力」、-w
は「単語として検索」を意味します。
2. lsof
コマンドで、そのプロセスが開いているファイルを一覧。その中で"log"を含むものは…
lsof -p 今把握したプロセスID | grep -w "log"
ほとんどの場合これで今開いているログファイルが見つかります。ログファイルって普通開きっぱなしにするものなんですね。自作のロギングライブラリは都度オープンだからこれ通用しない…