質問
バックグラウンドで 15 のプロセス/デーモンが実行されているとします。プロセスの 1 つがコアをダンプしたとします。
どのプロセスがコアをダンプしたかを特定するにはどうすればよいですか。
私はhpuxを使っています!
解決
1) プロセスの名前が同じ場合は、別のフォルダーから実行する必要があると思います。プロセスがコアをダンプすると、そのコアはそのフォルダーに取得されます。どうやって始めたのかわかりません。使用する場合 &
プロセスを開始するには、次を使用できます $!
最後に起動したデーモン プロセスの PID を取得し、プロセスの PID をそのフォルダーに保存します。または、このフォルダー内のデーモンのログを確認し、そこからこのフォルダー内のプロセスの PID を取得することもできます。
2) 別のアプリケーションを実行する場合は、次のことを使用できます。 file ./core
アプリケーションの名前を確認します。
更新しました:3) これについて読みました:
最初に実行 coreadm -p core.%p.%f.%t.%n
または、このコマンドをプロフィールに追加します。アプリケーションがコアダンプを実行すると、次の名前のコア ファイルが表示されます。 core.<PID>.<Application-Name>.<Timestamp>.<Server>
. 。例えば: core.29305.main.1278939422:531259.srv2-rx8
他のヒント
これは、ファイル名の一部としてPIDを書き込むことができます。私はあなたの15個のプロセスを開始するものかのか分からないが、PIDを保存するのが一般的です。デーモンは通常、何かを自分自身のpidファイルを作成することを特定のインスタンスます。
これは、ダンプ中に生成されたインデックスファイルにする必要があります。
:HP-UX 10.26には、(本当に古い)でダンプを保持しました /var/adm/crash
あなたはQ4またはダンプを調査するための同様のツールを必要とします。 epronkが示唆したようにパターンを設定するには、coreadmをのの必要があります。マニュアルページを参照してください。
man coreadm