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

C Sharpens you up

http://qiita.com/yuba に移しつつあります

Linuxサービスが書き出しているログファイルを一発で探し出す

Linux

LinuxというかUNIX系のプログラムは、設定ファイルの位置もログファイルの位置もプログラムごとにバラバラ、それもディストリビューションごとにまた違ってくるから扱いづらいです。

「Jenkinsのログはどこ!?」となったときにGoogle先生詣でをすることなく一発で探し出す方法をどうぞ。

1. まずサービスのプロセスIDを把握する。

ps -A -f | grep -w "サービスの起動コマンドラインに含まれていそうな単語"

オプションの-Aは「すべてのプロセスを表示」、-fは「起動コマンドラインをフル出力」、-wは「単語として検索」を意味します。

2. lsofコマンドで、そのプロセスが開いているファイルを一覧。その中で"log"を含むものは…

lsof -p 今把握したプロセスID | grep -w "log"

ほとんどの場合これで今開いているログファイルが見つかります。ログファイルって普通開きっぱなしにするものなんですね。自作のロギングライブラリは都度オープンだからこれ通用しない…