リスト内のプロセスエントリを特定して選択すると、このプロセスに対して次のアクションを実行できます。
終了のシグナルを送ってプロセスを終了するか、応答を呼び出す
アドレス・マネージャで所有者情報を検索する
システムコールを監視したり、子プロセスを表示したり、またはデバッガを実行したりする
スタックまたはプロセスの系統図を表示する
次の手順のうち意味が分からないものについては、システム管理者に問い合わせてください。
UNIX の kill コマンドを使うと、プロセスにシグナルを送ることができます。「シグナル」とは、プロセスを中断して応答を行わせるためにプロセスに送られるメッセージです。送られるタイプの信号にプロセスが応答するようになっていれば、プロセスは応答します。応答するようになっていなければ、プロセスは終了します。次の表に、よく使われるシグナルの番号、名前、および意味をまとめます。
シグナル番号 | シグナル名 | 意味 |
---|---|---|
1 | HUP | ハングアップ (ログアウト前に使われる場合が多い) |
2 | INT | 割り込み (端末セッションで [Control]+[C] キーを押した場合と同じ) |
9 | KILL |
終了 (クリーンアップなしに終了する) プロセスの所有者またはスーパーユーザ (root) が出した場合にのみ機能する。 プログラムはこのシグナルに応答できず、終了しなければならない |
15 | TERM |
終了 (クリーンアップ後に正常終了する) プロセスの所有者またはスーパーユーザ (root) が出した場合にのみ機能する |
[強制終了] メニュー項目を使うと、プロセスに KILL シグナルを送ってクイック終了できます。[シグナルを送信] メニュー項目を使うと、kill(1) コマンドで送られるシグナルをさらに制御できます。たとえば、INT シグナルまたは HUP シグナルを送信できます。
プロセスにシグナルを送るだけにしてください。ただし、ユーザがその意味を理解していることが条件です。たとえば、ログインシェルを選択して KILL シグナルを送ると、突然ログアウトします。プロセスならびにジョブ制御の詳細は、システム管理者に問い合わせるか、『Solaris ユーザーズガイド (上級編)』を参照してください。
プロセス・マネージャのスクロール区画でプロセスエントリを選択します。
[プロセス] メニューから [強制終了] を選択します。
プロセス (およびその子プロセス) が終了します。ただし、ユーザにアクセス権が必要です。アクセス権がない場合は、エラーが表示されます。プロセスの終了に数秒かかる場合もあります。次にプロセス・マネージャでプロセスの表示画面が変更される際にそのプロセスが表示されていなければ、プロセスは終了しています。
対応する UNIX コマンドは kill -9 PID です。PID は、選択したプロセスのプロセス ID です。
次のファイルの「Kill」というラベルのついたアクションを再定義すると、[強制終了] メニュー項目で実行されるコマンドを別のコマンドに再定義できます。
/usr/dt/appconfig/types/
localename/sdtprocess.dt
プロセス・マネージャのスクロール区画でプロセスエントリを選択します。
[プロセス] メニューから [シグナルを送信] を選択します。
ダイアログボックスが表示され、シグナルの指定を求められます。signal(5) のマニュアルページに記載する 42 種類のシグナルから、少なくとも 1 つを指定します。
対応するシグナル番号または名前を入力し、[了解] をクリックします。
シグナルコマンドが表示され、ダイアログボックスが閉じます。成功を知らせるメッセージは表示されません。通常、プロセスを終了すると、その子プロセスも終了します。
対応する UNIX コマンドは kill -signum_name PID です。-signum_name はシグナルの番号または名前、PID は選択したプロセスのプロセス ID です。
プロセス・マネージャのスクロール区画でプロセスエントリを選択します。
[プロセス] メニューから [所有者情報を表示] を選択します。
アドレス・マネージャが表示され、選択したプロセスのシステムユーザ名がシステムカードで自動的に検索されます。アドレス・マネージャの詳細は、第 18 章「アドレス・マネージャの使い方」を参照してください。
プロセス・マネージャのスクロール区画でプロセスエントリを選択します。
[プロセス] メニューから [プロセスの系統図を表示] を選択します。
指定したプロセスのプロセスツリーを含んだウィンドウが表示されます。子プロセスは、それぞれの親プロセスに対してインデントされて表示されます。
対応する UNIX コマンドは /usr/proc/bin/ptree PID です。PID は、選択したプロセスのプロセス ID です。
UNIX プロセスが 1 つまたは複数の依存プロセスを起動するとき、このプロセスを「子プロセス」または子供といいます。子プロセスと親プロセスのユーザ ID は同じです。
プロセス・マネージャのスクロール区画でプロセスエントリを選択します。
[プロセス] メニューから [子プロセスを追跡] を選択します。
選択したプロセスのすべての子プロセス (およびその子プロセス、再帰的に作成されます) の作成記録が表示されます。
Intro(2) のマニュアルページに記載するエラーコード名を使って、エラーリターンがレポートされます。
対応する UNIX コマンドは、truss -fa -texec,fork -s¦CLD,ALRM -p PID です。PID は、選択したプロセスのプロセス ID です。
プロセスは、実行中に UNIX カーネルの呼び出し、つまりシステムコールを行います。これらのシステムコールを追跡して、他のプロセスに与えている影響を確認できます。
プロセス・マネージャのスクロール区画でプロセスエントリを選択します。
[プロセス] メニューから [システムコールを追跡] を選択します。
ダイアログボックスが表示され、任意の引き数の入力を求められます。
[了解] をクリックします。
トレース出力の各行は、フォルトの発生またはシグナル名、引き数と戻り値を含めたシステムコール名のいずれかをレポートします。詳細は、truss(1) のマニュアルページを参照してください。
対応する UNIX コマンドは、truss -p PID です。PID は選択したプロセスのプロセス ID です。
プロセス・マネージャのスクロール区画でプロセスエントリを選択します。
[プロセス] メニューから [スタックを表示] を選択します。
選択したプロセスに対して 16 進数と記号からなるスタックトレースが表示されます。
対応する UNIX コマンドは、/usr/proc/bin/pstack PID です。PID は選択したプロセスのプロセス ID です。
アプリケーション開発者とシステム管理者は、Sun WorkshopTM などのデバッグ用アプリケーションを使い、誤動作しているプロセスを詳しく調べることがあります。[プロセス] メニューの [デバッグ] 項目を使うと、選択したプロセスに対してユーザの指定するデバッガが呼び出されます。
指定のデバッガを使って、プロセスをデバッグします。
対応する UNIX コマンドは、workshop -d command です。workshop はデバッグプログラム名、command はプロセス ID をデバッガに引き渡すために必要なコマンドです。