Macでゾンビプロセスを強制終了する方法


13

ターミナルを使用して、Macでゾンビプロセスを強制終了する方法、または親プロセスを見つける方法



3
@soandosトピックはゾンビに関するものではないため、重複ではありません。kill信号はどれもゾンビIIRCでは機能しません。これは以前にも起こりました。
ダニエルベック

通常、親プロセスがわかっている場合はゾンビを殺すことができますが、これにはゾンビも殺す必要がありますが、これは必ずしも楽しい選択とは限りません。したがって、これに別の解決策があるかどうか疑問に思っています。
eFrane

回答:


16

ハック・ソー言います:

悲しいことに、ゾンビを殺すことは親を殺すことのすべてであり、親が/ sbin / launchdである場合、再起動することでのみ殺すことができるようです。

killするのは非常に悪い考えlaunchdですが、HUPに伝えることができます。

試して sudo kill -s HUP 1

これによりlaunchd、再起動せずに再初期化されます。これは過去に私のために働いていました(ゾンビエントリを削除します。)


3

悲しいことに、ゾンビを殺すことは親を殺すことのすべてであり、親が/ sbin / launchdである場合、再起動することでのみ殺すことができるようです。

Xcodeを使用してゾンビを取得し、シミュレーターを停止すると、ゾンビが自分の個人の/ sbin / launchdに渡されますが、ログアウトしても消えませんでした。

ps -xo pid、ppid、stat、commandは、2番目の列に親IDを持つプロセスを表示します。


1

ゾンビプロセスはすでに死んでいて、殺すことができません。それらは、親プロセスが停止したときにプロセステーブルから自動的に削除される必要があります。

マシンの速度を低下させることはなく、そのままにしておくことができます(プロセステーブルのエントリのみです)。

プロセスの最大数があり(これはで確認できますsysctl kern.maxproc)、ゾンビプロセスはそれを減らします(カウントされるため)。

この制限に達すると、新しいプロセスを作成できなくなり、強制的に再起動することになります。


「削除する必要があります」が、必ずしもそうではありません。Xcodeはゾンビプロセスから離れるのが恐ろしく、Xcodeが死ぬ/終了する/殺されてもクリーンアップされません。
JRG開発者

@ JRG-Developer同意しますが、問題はありません。リソースを消費しません。
マッテオ

2
実際には、作成されたファイルが多すぎてforkが新しいプロセスを起動できず、再起動を余儀なくされる場合に問題になります。
アダム

2
クラッシュしたプロセスを再起動して再度使用する場合に問題になりますが、再起動せずにはできません。
MarcusJ

4
アプリがその状態になると、古いエントリが消去されるまで再起動できません。リソースを使用していませんが、テーブルの汚染により新しいインスタンスの起動が妨げられているため、再起動するまでブロックされます。
ジョージ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.