問題タブ [sigkill]
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.
java - ノードから Java (Leiningen) プロセスを強制終了する
java
NodeJS から (経由で) 一連のプロセスを起動していchild_process.spawn
ます。技術的には、Leiningen (Clojure ビルド ツールlein
) を起動しています。後で私は彼らと彼らのすべての子供たちを殺そうとします. しかし、それはほとんど機能せず、java
s で満たされたアクティビティ モニター (OSX) しか得られません。
最初に実行してthisProcess.kill(leinProcess.pid);
(デフォルトは SIGTERM)、1 秒待ってから を呼び出して、それらを強制終了しleinProcess.kill("SIGKILL");
ます。
すべてのプロセスとメイン プロセスは、同じユーザーの下で実行されます。
killall -9 java
コマンドラインからの実行は機能します。
memory-management - callocを使用してC ++でメモリを割り当てている間のSIGKILL
この質問は、なぜ malloc() または new が NULL を返さないのですか?のフォローアップです。C++ でメモリを割り当てる際のSIGKILL :
そこの答えから、によって「正常に」割り当てられたメモリに書き込もうとすると、プログラムが強制終了される理由を理解できますmalloc
。ただし、calloc
(SLCおよびUbuntuで)使用すると同じ問題が発生します。
NULL ポインターを返す代わりに、プログラムは SIGKILL されるため、戻り値をチェックしてcalloc
も無駄です。しかしcalloc
、「オーバーコミット機能」の影響を受けるべきではありませんか? malloc
(裏方に頼らなければ…)
ios - バックグラウンドから戻ると奇妙なアプリがクラッシュする
これは iOS 8 のみの問題のようです。他の場所では見たことがなく、iOS 8 でのみ発生します。iOS 8 に更新されていないものを含め、携帯電話のほぼすべてのアプリに影響するように見えるため、これは私のアプリに限ったことではありません。クラッシュは、EXC_CRASH (SIGABRT)
ランダムなスレッドでトリガーされるようです。もちろん、バック トレースは何の役にも立ちません。なぜなら、さまざまなビルドやアプリケーションからのクラッシュ レポートを再シンボル化できないからです。そこで、Xcode でアプリを実行し、このクラッシュにつながるイベントを再現することにしました。基本的に、アプリを実行してロードし、ホームボタンを押して別のアプリに切り替え、電話でいくつかのことを行い、数秒後にアプリに戻ります。クラッシュしてアプリに戻ったときSIGABRT
、スタックトレースを取得して取得する代わりに、SIGKILL
(lldb)
コンソールのメッセージ。バックグラウンドではクラッシュせず、代わりにフォアグラウンドに戻ったときにクラッシュするため、バックグラウンドプロセスが中断されないため、これは奇妙です。また、スタック トレースがないため、なぜこのようなことが起こっているのかわかりません。私の知るSIGKILL
限り、停止ボタンを押したとき、およびアプリがメモリを使いすぎたときにのみ、Xcode によって a が提供されます。どちらのイベントも発生しませんでした。誰もこれを経験したり、解決したりしましたか?
python-2.7 - Python スクリプトは、MemoryError をスローするのではなく、SIGKILL によって終了します
再更新
これを再現する簡単な方法を作成しようとしましたが、成功していません。
これまで、さまざまな単純な配列の割り当てと操作を試してきましたが、それらはすべて、単に SIGKILL がクラッシュするのではなく、MemoryError をスローします。
例えば:
また:
必要に応じて MemoryErrors をスローするだけです。
いつかこれを再現する簡単な方法があればいいなと思っています。
更新終了
numpy/scipy といくつかのカスタム C 拡張機能を実行する Python スクリプトがあります。
Virtual Box の下の私の Ubuntu 14.04 では、正常に完了します。
Amazon EC2 T2 マイクロ インスタンスでは、(しばらく実行した後) 次の出力で終了します。
殺された
Python デバッガーで実行すると、シグナルがキャッチされず、デバッガーも終了します。
strace の下で実行すると、次のようになります。
「SIGKILL」をキャッチしようとしているときにgdbの下で実行すると、次のようになります:
Python のトレース モジュール (python -m trace --trace ) を実行すると、次のようになります。
何が起こっているのかを理解するために、現時点では他に何も考えられません。
おそらくメモリが不足している可能性があると思います(AWSマイクロインスタンスです)が、それを確認または拒否する方法がわかりません。
プログラムが停止している場所を正確に特定するのに役立つ別のツールはありますか? (または、この問題に対して上記のツールのいずれかを間違った方法で実行していますか?)
アップデート
Amazon EC2 T2 マイクロ インスタンスにはデフォルトでスワップ スペースが定義されていないため、4 GB のスワップ ファイルを追加し、プログラムを最後まで実行することができました。
ただし、「Killed」ではなく「Not Enough Memory」に少し近いメッセージで終了するようにプログラムを実行する方法には、まだ非常に興味があります。
誰かに何か提案があれば、感謝します。
linux - SIGKILL のシグナルハンドラのコードを変更できますか
SIGKILL のシグナル ハンドラーのコードを変更して、SIGKILL のアシチンを再定義するにはどうすればよいですか?
php - Apache は長時間実行されているプロセスを強制終了します
Linux apache サーバー (ubuntu 14.04 lts、mpm_prefork および mod_php を使用した apache 2.4.7) には、長い時間がかかる PHP スクリプトがあります。これらはApacheによって殺されます。
PHP設定を調整しました(max_execution_time、set_time_limit ...)
ログにトレースはありません (syslog、apache アクセス/エラー ログ)
strace を使用して Apache プロセスをトレースしました。