問題タブ [defunct]
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.
bash - cronによって生成されたプロセスが機能しなくなるのはなぜですか?
(および)のよう<defunct>
に表示されるプロセスがいくつかあります。私は実際のスクリプトとプログラムから物事を煮詰めました。top
ps
私の中でcrontab
:
(もちろん実行可能としてマークされている)の内容launcher.sh
:
(もちろん実行可能としてマークされている)の内容tester.sh
:
ps
は次のことを示しています。
tester.sh
表示されないことに注意してください。バックグラウンドジョブの起動後に終了しました。
なぜlauncher.sh
マークされたままでいるの<defunct>
ですか?これは、cron
自分で実行したときではなく、によって起動されたときにのみ実行されるようです。
追記:launcher.sh
これが実行されるシステムで一般的なスクリプトであり、簡単に変更することはできません。他のもの(crontab
、、tester.sh
の代わりに私が実行するプログラムでさえsleep
)ははるかに簡単に変更することができます。
fedora - initはゾンビ/defunctプロセスを刈り取ることはありません
カーネル2.6.18を搭載したFedoraCore9 Webサーバーでは、initはゾンビプロセスを取得していません。これは、プロセステーブルが最終的に上限に達し、新しいプロセスを割り当てることができない場合には耐えられます。
のサンプル出力ps -el | grep 'Z'
:
これはOSのバグですか?設定ミス?この問題の原因についてのインスピレーションを探しています。ありがとう
css - 肥大化したスタイルシートから未使用の CSS スタイルを特定して削除するにはどうすればよいですか?
未使用のスタイルでいっぱいになった古いスタイルシートがあります。問題は、必要なものと不要なものを識別することです。これを支援するツールはありますか?
database - 顧客が注文を完了する前に注文データベース レコードを生成するのはなぜですか?
私は注文システムを扱っており、まずなぜそれがそのように設計されたのかを理解しようとしています.
私が理解できないことの 1 つは、顧客が注文する前であってもOrder
、潜在的な顧客に対してシステムが一意のレコードを作成する理由です。
そのため、注文が入り、購入したいものを選択すると、ボタンが表示される前に、潜在的なPlace your order
顧客の注文レコードが既に保存されています。
この結果、私が気になっているのは、ユーザーが販売を確定するための最終ボタンをクリックしなかったために、システム内に何千もの放棄された注文が存在することです。Place your order
ユーザーが「注文する」をクリックした後にのみ注文レコードが生成されるべきではありませんか? なぜそうしないのですか?
c - C:Exec/fork>廃止されたプロセス
fork>execプロシージャを使用して多くの子プロセスを作成したいと思います。多くのプロセスは非常に速く終了しています(2分未満で、一部はそれよりも早く)。
私の最初の問題は、スポーンプロセスをバックグラウンドに置くことです
ここまでは順調ですね。これで、spawnbotのメッセージは表示されなくなり、logging.txtに直接移動します。ただし、新しい子が作成されるたびに、その子に関するすべての情報がコンソールに再び表示されます。各子を独自のパイプで開始したいと思いました。子に出力メッセージを投稿させないためのより良い方法はありますか。コンソール?それを/dev/ nullにリダイレクトする必要がありますか、それともCのフラグを使用してこれを行う必要がありますか?
第二に、すべての子供たちが実際に殺されるわけではありません。私のps-efにはたくさんのプロセスがあります。私はそれについて何ができますか?どうすればいいですか
c - kill-プロセスをすぐに強制終了しますか?
正確には何をしkill
ますか?
100個の(例として)子プロセスを次々に作成する親プロセスがあります。子供の仕事の終わりに、私は子供を殺します、そして私はそれを出力kill(pid_of_child, SIGKILL)
で見ることができません。ps
しかし、親プロセスに問題が発生し、で親プロセスを終了した場合exit(1)
(この時点では、子は1つだけです。チェックインできますps
)、その時点で、親プロセスの<defunct>
プロセスがppid
多数表示されます。pid
そんなことがあるものか?kill
子プロセスを完全に殺しませんでしたか?
c - 子プロセスは移動できますか親プロセスが死ぬことなく?
私は自分の答えを見つけ、シグナルハンドラーを設定し、そのハンドラーSIGCHLD
に導入wait
しました。そうすれば、親プロセスkill
が子プロセスになるたびに、このハンドラーが呼び出され、子を取得するために呼び出されwait
ます。- 動機は、プロセス テーブル エントリをクリアすることです。
親プロセスが終了していなくても、いくつかの子プロセスが数秒間進行していることがわかります。- これはどのように可能ですか?
私はこれを介して見ていps
ます。親プロセス、子プロセス、および機能していないプロセスを正確ps -o user,pid,ppid,command -ax
にgrepingします。
apache - CGI プロセスが機能していない原因
CGI プログラムが起動または終了した時刻を apache ログから追跡できるかどうかを確認したいと思います。
JavaScript を使用して 2 秒ごとに CGI プログラムをリロードし、その CGI プログラムで SQL への一連の接続をチェックして実行する場合、SQL API が試行するまでに CGI プロセスがすでに終了しているかどうかを確認したいと考えています。その CGI プロセスに SQL ステータスを返すことで、機能していないプロセスを引き起こしますか?
CGI プロセスが終了した時間を追跡できますか? Apache ログを介して CGI プロセスが呼び出されるのは何時ですか?
みんなのアドバイスが必要です。
ありがとう。
php - pcntl_fork() により親プロセスが機能しなくなる
だから、IPC メッセージをリッスンするこの PHP デーモン ワーカーがあります。奇妙なことに、親プロセス (pcntl_fork からの結果) は、子プロセスが完了するまで [php] < defunct> プロセスを残しますが、スクリプトがコマンドラインから直接ではなく、cronjob から開始された場合のみです。
< defunct> プロセスが悪意を持っていないことは知っていますが、cron ジョブから実行しているときにのみ発生する理由がわかりません。
指示
分岐コード:
出力
ps補助 | grep php
これは apache の既知のバグであることがわかりましたが、なぜ cronjob から実行するとこのバグが発生するのでしょうか?
python - 無限ループでキューに接続されたpythonマルチプロセッシングワーカーを停止する最もクリーンな方法は何ですか?
multiprocessing.Pool
およびを使用して、Python でプロデューサー/コンシューマー パターンを実装していmultiprocessing.Queue
ます。gevent
コンシューマーは、複数のタスクを生成するために使用する事前にフォークされたプロセスです。
以下は、コードの縮小版です。
終了しようとすると、次の状態になります。
- 親プロセスは、子の 1 つが参加するのを待っています。
- 子供の 1 人は死亡した状態です。終了しましたが、親は他の子が終了するのを待っています。
- 他の子が表示されています:
futex(0x7f99d9188000, FUTEX_WAIT, 0, NULL ...
.
では、そのようなプロセスをきれいに終了させる正しい方法は何ですか?