今日はゾンビプロセスについて学びます。特に、Linux / Unix オペレーティング システムでゾンビ プロセスを見つけて強制終了する方法について説明します。
ゾンビ プロセスとは
Linux / Unix オペレーティング システムでは、defunc プロセス (別名ゾンビ プロセス) は実行が完了したシステム プロセスですが、システム プロセス テーブルには表示されたままです。つまり、これは空のプロセスであり、タスクを実行していませんが、まだ存在し、プロセス ID を持っています。
ゾンビ プロセスがある場合は、親プロセスが存在します。映画と同じように、ゾンビは通常の殺し方には反応しません。 Unix / Linux でも同じです。ゾンビを強制終了することはできませんが、親プロセスを強制終了することはできます。これにより、ゾンビ プロセスはすぐに消滅します。
ゾンビ プロセスは、ほぼすべての Unix / Linux オペレーティング システムで見つけることができ、cPanel サーバーも含まれます。
システム上のゾンビ プロセスを一覧表示するにはどうすればよいですか?
ゾンビ プロセスは、ps コマンドを使用し、「STAT」列に「defunc」または「Z」文字列を指定して grep コマンドをパイプ処理することで見つけることができます。
例:ps と grep を使用してゾンビ プロセスを見つける
ps aux |grep "defunct"
または
ps aux | grep 'Z'
出力例:
[example@unixlinux.online:~]ps aux | grep 'Z' USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 28115 0.0 0.0 103320 864 pts/0 S+ 09:26 0:00 grep Z johndoe 3572 0.0 0.0 0 0 ?? Z 20:41 0:00 some.command
ゾンビ プロセスを強制終了
ゾンビ プロセスを強制終了するには、3572 プロセスを強制終了します。 pstree コマンドを使用して、親プロセスに資金を提供しましょう
pstree -p -s 3572
出力は次のようになります:
init(1)---cnid_metad(1201)---cnid_dbd(3572)
これにより、ゾンビ プロセスの親の pid が表示されます。ここで、親プロセスを強制終了する必要があります。
[example@unixlinux.online]# kill -9 3572
これで、Linux / Unix オペレーティング システムでゾンビ プロセスを見つけて強制終了する方法がわかりました。 Linux / Unix でゾンビ プロセスを見つけて強制終了する他の方法を知っていますか?あなたの知識を私たちと共有してください。
さらに読む:
- ゾンビ プロセスの概念
- RedHat メーリング リストのゾンビ プロセス