スレッドダンプを取得するには、次の方法を使用したことがあります。
kill -3 `pidof java`
catalina.out
代わりにこの出力をファイルに保存する方法catalina.out
通常、killコマンドはstdoutまたはstderrに出力しないため、スクリプトをログにリダイレクトしたり、execを使用してこれを実行することはできません。それを取得し始めましたが、それを行う方法はありますか?
答え1
を使用したい場合がありますjstack $(pidof java) > MYFILE
。
答え2
このツールは Java バージョン 7 以降で使用できjcmd
、Oracle が推奨するオプションです。などjcmd
の複数の診断ツールの機能を集計します。jstack
jmap
次のjcmd
コマンドを実行して、PID 1234のプロセスのスレッドダンプを取得できます(出力がファイルにリダイレクトされます)。
jcmd 1234 Thread.print > thread-dump.txt
詳しくはこちらをご覧ください。jcmdユーティリティ、jcmd のマニュアルページ