問題タブ [zombie-process]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - プロセスを強制終了すると、ゾンビプロセスが残って私を悩ませます... :(
フォークを使用するプログラムがあります。子プロセスでは、リモート サーバーにログインしてコマンドを実行するだけです。親プロセスでは、子がタスクを完了するのを待ちます。所定の時間内に終了しない場合は、kill(child_pid, SIGTERM) を使用して子プロセスを強制終了します。しかし、これはゾンビプロセスのようなものを残すことに気付きました
タイムアウトが増加すると、ゾンビ プロセスも増加し、最終的には ssh を使用できなくなります。
私を悩ませるゾンビを作成せずに子プロセスを強制終了するにはどうすればよいですか??
unix - UNIXのゾンビとデーモン
プロセスが適切にクリーンアップされない場合(そのリソースが再利用/取得されない場合)にゾンビが作成されることを理解しています。fork()を呼び出して新しいプロセスを作成した後、親は常にそのプロセスでwaitpidを呼び出してクリーンアップする必要があります。
また、デーモンは、それ自体がforkによって作成された子をフォークし、その子を死なせることによって作成されることも学びました。どうやら、UNIXのinitプロセス(pid#1)は、これを実行するとプロセスを管理するようになります。
私が知りたいのは、私が知る限り、親が死ぬと自動的に子をクリーンアップするということです。そもそもゾンビはどのようにして作成されるのでしょうか。
次に、デーモン化されたプロセスの親が消滅します。それでは、デーモン化されたプロセスがゾンビと見なされないのはなぜですか。
python - パイロンとゾンビのプロセス
ユーザーが長時間の計算プロセス(たとえば、数時間)を開始できるようにするアプリケーションを作成しようとしています。そのために、PythonPopen()
関数を使用します。メインのPylonsプロセスが正常に機能している限り、すべてが正常ですが、Pylonsプロセスを再起動すると、前回のパスターの起動から残っているゾンビプロセスがある場合、要求に応答しません。
この問題の原因または回避策は何でしょうか?
よろしくお願いします、Ivan。
linux - SIGCHLD がプロセス ツリーに配信されない
子が死亡した場合、親がプロセスとそれに依存するプロセスを再起動するように、他のプロセスを管理するプロセスを作成しようとしています。
問題は、この構造の途中でプロセスを再起動するときにプロセスのツリー構造を作成すると、新しい子プロセスが終了したときに通知されないことに気付くことです。
例を書きます。祖父母、親、子の 3 つのプロセスがあるとします。祖父母がフォークして親を開始し、そのフォークして子を開始します (コードはこの投稿の最後に置きます)。子をすべて正常に終了させると、子は正しく再起動されます。
親を殺すと問題が発生します...祖父母は子を再起動する親を再起動しますが、子を殺すとプロセスはゾンビ状態のままになり、SIGCHLDは親プロセスに配信されません。
言い換えると:
- 祖父母プロセスを開始し、3 つのプロセスすべてが起動するのを待ちます
- 親プロセスを強制終了し、祖父母が親を再起動して子を再起動するのを待ちます
- 子プロセスを強制終了すると、プロセスはゾンビ状態のままになります。
私はこの動作を理解できません...シグナルと待機に関する例とドキュメントをたくさん読みました。親と祖父母のフォークの前にデフォルトハンドラーをリセットしようとしましたが、何も機能していないようです...ここにコードサンプル...
祖父母.cpp
親.cpp
子.cpp
iphone - XCodeのデバッグ/ゾンビのトレース/機器のリーク
Xcodeを更新する前は、Instrumentsでゾンビ/リークをダブルクリックでき、扇動するコードに直接移動できましたが、今はそれができないようで、理由がわかりません。何かアイデアはありますか?
php - PHP からのデーモンの起動
Web サイトの場合、デーモン プロセスを開始および停止できる必要があります。私が現在していることは、
デーモン プロセスは開始されますが、Apache/PHP がハングします。実行するps aux
と、それsudo
自体がゾンビ プロセスに変更され、それ以降のすべての進行が効果的に停止されます。PHP からデーモンを起動しようとすると、これは正常な動作ですか?
はい、Apache にはコマンドを実行する権利があり/etc/init.d/daemonToStart
ます。/etc/sudoers ファイルを変更して、そうできるようにしました。いいえ、私は Apache があらゆる種類のコマンドを実行することを許可していません。Web サイトが機能するように、いくつかのコマンドを実行できるようにしています。
とにかく、私の質問に戻りますが、ゾンビプロセスが作成されないように PHP がデーモンを開始できるようにする方法はありますか? 逆に、すでに開始されているデーモンを停止すると、問題なく機能するため、これを尋ねます。
ios - iOS: UIActionsheet (または UIPopoverController ビュー) がゾンビになる
私はUIViewControllerを持っています。その中で、ユーザーは UIActionsheet または popover を起動できます。デバイスが回転すると、UIViewController が意図的に解放されます。問題は、UIActionsheet / ポップオーバーが存続し、後で私を悩ませるゾンビになることです。ユーザーがゾンビのボタンをクリックすると、アプリケーションがクラッシュする可能性があります。dealloc または shouldAutorotateToInterfaceOrientation で [actionsheet disconnectWithClickedButtonIndex:0 animation:NO] を呼び出そうとしました。無効。提案をお待ちしております。ありがとう。
c - 未刈り児とその未来
そのため、子が死ぬと親は get を取得しますSIGCHLD
が、親が wait() を実行する前に死ぬと、子の親は に変更されinit
ます。この時点で、子はzombie
ie<defunct>
です。
次は何が起こる?
その子に wait() を実行しますかinit
? はいの場合、いつそれを行いますか? 制限時間に関する保証はありますか?
uikit - 割り当て解除されたインスタンスに送信されたメッセージ、UIKit フレームワークでのクラッシュ、デバッグ方法は?
賢い皆さん、こんにちは。
クラッシュ バグのデバッグに何日も費やしましたが、依然として根本的な原因が見つかりません。ヒントとガイダンスを渇望しています。
これはテーブル ビュー コントローラーですが、他の多くの UI コントロールを追加したため、より複雑になっています。ツール Zombie を使用してデバッグを支援し、テーブル ビューの割り当てが解除されたことによるクラッシュの原因を見つけても、外部イベントを受け取ります。
質問。
次の Zombie によるコール スタック キャプチャを参照してください。どの予期しないイベントがまだ送信されているかわかりません。内部のUIKitフレームワークにデバッグするのに役立つ方法はありますか?
私は iPhone のプログラミングに慣れていないので、そのような問題に遭遇したかどうかを知りたいのですが、根本的な原因を探すためにどのような方法を試みますか? 試す方法は?クラッシュポイントを一時停止するには?
私は多くの実験を行ってきましたが、これまでのところすべて失敗であることが証明されています。あなたの助けが必要です、どんなアイデアや議論も大歓迎です、事前に感謝します.
java - アプレットを起動した後のゾンビJavaインタプリタは、再起動した場合にJavaコンソールが再表示されないようにします
JFrameまたはアプレットとして実行できるJavaアプリケーションがあります。
ブラウザでアプレットを起動すると、ブラウザに新しいタブが追加され、Javaコンソールも表示されます。両方を閉じた後、この操作を繰り返してJavaコンソールが再表示されることを期待しています。再表示されませんが、ブラウザでアプレットをリロードできます。
Firefoxによって起動されたこのゾンビjava
インタプリタプロセスを強制終了する必要があるたびに。
プロセスを強制終了すると、Javaコンソールが再表示されます。また、クロムを使用して再現手順を試しましたが、ゾンビプロセスのコマンドラインが異なることを除いて同じ結果です。
注意事項:
- アプレットを含むブラウザタブを閉じると、アプレットは通常の状態にあり、ユーザーがUIでアクションを実行するのを待っています。
java
プロセスはブラウザプロセスの子であるため、アプレットの再起動の間にブラウザを完全に閉じると、問題も修正されます。
誰かが説明や回避策を持っていますか?ありがとう!