Linuxコマンド「strace」


straceコマンドはプロセスが呼び出すシステムコールをトレースすることで、不具合の手がかりを探すことができます。(Macであればsudo dtrussでシステムコールを確認できます)

sudo strace -tt -s 1024 -p [PID]

🚌 便利なオプション

straceのオプションをいくつか紹介します。

オプション 説明
-c システムコールの呼び出された回数、かかった時間などの統計情報を出力します
-e trace=xxx 特定のシステムコールに絞ってトレースできます
-o ファイルへ出力します
-p [PID] プロセスIDを指定します
-s 出力文字数を指定します
-tt 文頭にタイムスタンプをマイクロ秒単位で出力します

🐡 応用例

nginxがどの設定ファイルを開いているか

strace nginx 2>&1 | grep 'open' | grep '.cnf'

👽 参考リンク

📚 おすすめの書籍

🖥 サーバについて

このブログでは「Cloud Garage」さんのDev Assist Program(開発者向けインスタンス無償提供制度)でお借りしたサーバで技術検証しています。 Dev Assist Programは、開発者や開発コミュニティ、スタートアップ企業の方が1GBメモリのインスタンス3台を1年間無料で借りれる心強い制度です!(有償でも1,480円/月と格安)