ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
マニュアルページセクション 1: ユーザーコマンド Oracle Solaris 11.1 Information Library (日本語) |
- すでに存在しないプロセスの親による取得の強制
preap [-F] pid...
すでに存在しない (またはゾンビ) プロセスとは、終了ステータスが親によってまだ取得されていないプロセスです。終了ステータスは、wait(3C)、waitid(2)、または waitpid(3C) システムコールによって取得されます。通常のシステム運用では、ゾンビが発生する可能性はありますが、一般的には短時間存在するのみです。これは、親が一部の子またはすべての子の終了ステータスを取得せずに終了した場合に発生することがあります。この場合、それらの子の親は PID 1 に設定されます。このようなプロセスを定期的に取得する init(1M) を参照してください。
中途な状態の親プロセスは長時間終了できず、ゾンビがシステムに残ります。オペレーティングシステムは、プロセスが存在しなくなる前にプロセスのほとんどすべてのコンポーネントを破棄するので、通常、そのような存在しないプロセスはシステム動作に影響しません。ただし、それらは少量のシステムメモリーを消費します。
pid がすでに存在しないプロセスを表す場合、preap は、pid によって指定されたプロセスの親が pid に対して waitid(3C) を実行するように強制します。
preap は、次の場合に、親によってまもなく取得される可能性がある子プロセスを、管理者が無分別に取得させることを防止しようとします。
プロセスは init(1M) の子である。
親プロセスが停止していて、子の実行が再度許可されるのを待機している可能性があります。
プロセスが存在しなくなってから 1 分間経過していない。
次のオプションがサポートされています。
安全検査を無効にして、親が子を取得するように強制します。
次のオペランドを指定できます。
プロセス ID リスト。
-F フラグを使用するときは注意してください。2 つの制御プロセスを 1 つの犠牲プロセスに課すと混乱することがあります。プライマリ制御プロセス (通常はデバッガ) が犠牲プロセスを停止しており、プライマリ制御プロセスが当該の proc ツールの適用時に何も実行していない場合のみ、安全性が確保されます。
次の終了値が preap によって返されます。これは、終了させられた各ターゲットプロセスの終了値を出力しています。
正常に処理されました。
失敗 (該当するプロセスがない、アクセス権が拒否された、オプションが無効など)。
属性についての詳細は、マニュアルページの attributes(5) を参照してください。
|
proc(1), init(1M), waitid(2), wait(3C), waitpid(3C), proc(4), attributes(5)
preap は、存在しないプロセスが親プロセスによって取得されていないことを管理者または開発者が確認した場合にのみ、慎重に適用してください。そうしないと、preap を適用したときに、予期しない動作で親プロセスに障害が発生する可能性があります。