問題タブ [kill]
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# - C# での COM オブジェクトの管理
C# から呼び出す ATL COM exe があります。参照を C# にインポートすると、すべてが正常に機能し、exe が生成され、関数を呼び出すことができます。ここで、これらの COM オブジェクトのいくつかをインスタンス化します。ときどき、そのうちの 1 つがハングします。COM オブジェクトはまだ実行中なので、解放しても何も起こりません。正常に動作している他のすべてのオブジェクトを失うため、プロセスを強制終了することはできません。そう、
- 本当に1人だけを殺す方法はありますか?
- 要求された com オブジェクトごとに 1 つの exe を起動する方法はありますか?
- クライアントが予期せず終了した場合、COM exe はクリーンアップされません。これを修正する方法はありますか?
理想的には、オブジェクト インスタンスごとに 1 つの COM exe を起動し、それを Process.Kill() できるようにします。これらのいずれかがオプションですか?オブジェクトを作成するために使用するクラスは次のとおりです。この場合、RandomID() (人為的に) を返すのに非常に長い時間がかかります。また、別の言語でこれを行う方法があれば、それも試してみたいと思います。ありがとう。
編集:これを「シングルユース」に設定できれば、すべてが思い通りに機能するようです。ただし、VS 2008 でこのオプションを設定する場所が見つかりません。
編集:Googleグループで答えを見つけました
linux - Linux のプロセスで kill -9 を実行しても効果がない可能性はありますか?
Web サイトにアクセスしたときにテキスト文字列を自動的に強調表示するプラグインを作成しています。ハイライト検索結果に似ていますが、自動で多くの単語が検索されます。アレルギーのある人が食品サイトをブラウジングするときなど、単語を目立たせるために使用できます。
しかし、私には問題があります。空の新鮮な FF ウィンドウを閉じようとすると、どういうわけかプロセス全体がブロックされます。プロセスを強制終了すると、すべてのウィンドウが消えますが、Firefox プロセスは存続します (親 PID は 1 で、シグナルをリッスンせず、多くのリソースが開いていて、CPU を消費しますが、動きません)。
2つの質問:
プロセスが kill -9 (ユーザーとしてもルートとしても) をリッスンしないのはどうしてですか?
再起動以外にできることはありますか?
[編集] これは問題のあるプロセスです:
と同じps -ef | grep firefox
残る工程はこれだけです。ご覧のとおり、ゾンビではなく、走っています! PID で kill しても、名前で kill しても、kill -9 をリッスンしません! に接続しようとするとstrace
、strace
もハングして強制終了できません。出力もありません。私の推測では、FF はいくつかのカーネル ルーチンでハングしますが、どのルーチンがハングしますか?
[EDIT2] sigjuice によるフィードバックに基づく:
プロセスがハングするカーネル ルーチンを表示できます。私の場合、問題のあるプラグインは Beagle Indexer (openSUSE 11.1) でした。プラグインを無効にした後、FF は再び迅速で幸せなキツネになりました。
python - プロセスの終了をスケジュールするにはどうすればよいですか?
プロセスを実行し、数時間待ってから強制終了し、もう一度開始する必要があります。Python または Bash でこれを実現できる簡単な方法はありますか? バックグラウンドで実行できますが、kill を使用するにはどうすれば識別できますか?
linux - 何が私のプロセスを殺したのか、そしてその理由は?
私のアプリケーションは、Linux上でバックグラウンドプロセスとして実行されます。現在、ターミナルウィンドウのコマンドラインで起動しています。
最近、ユーザーがしばらくの間アプリケーションを実行していて、それが不思議なことに死にました。テキスト:
殺された
ターミナルにありました。これは2回起こりました。別のターミナルの誰かがkillコマンドを使用してプロセスを強制終了したかどうかを尋ねました。いいえ。
Linuxはどのような条件下で私のプロセスを強制終了することを決定しますか?kill(9)シグナルを受信した後にプロセスが停止したため、シェルは「killed」と表示されたと思います。Linuxがkillシグナルを送信した場合、システムログのどこかにkillされた理由を説明するメッセージがあるはずですか?
linux - OS がプロセスを強制終了したときのリターン コード
乗算プロセスを使用して、32ビットOSで4GBを超えるRAMを使用できるかどうかをテストしたかった(私の場合:1GB RAMのUbuntu)。
そのため、1GB よりわずかに小さいサイズを malloc する小さなプログラムを作成し、その配列に対して何らかのアクションを実行し、このプログラムの 5 つのインスタンスを fork で実行しました。
問題は、OSがそれらのうち4つを殺し、1つだけが生き残り、「PID:終了しました」と表示したと思われることです)。
(小さな配列で試してみたところ、5つの印刷がありました.TOPで実行中のプロセスを見ると、インスタンスが1つしか表示されません..)
奇妙なことはこれです-OSによって殺されたとされるものを含む、すべてのインスタンスでリターンコード0(成功?)を受け取りました
プロセスが強制終了されたことを示すメッセージは表示されませんでした。
この戻りコードは、この状況では正常ですか?
(そうであれば、「リターンコード」に対する私の信頼が低下します...)
ありがとう。
編集:いくつかの回答は、小さなプログラムで発生する可能性のあるエラーを示唆していたので、ここにあります。リターン コードをフォークして保存するより大きなプログラムはより大きく、ここにアップロードするのは難しいですが、問題ないと思います (そして希望します)。
また、fork プログラムで実行する代わりに、'./a.out & ./a.out & ./a.out & ./a.out &' を使用して端末で実行すると ( ./a.out は、添付された小さなプログラムのバイナリです) 'Killed' メッセージがいくつか表示されます。
c - C で fork() を適切に実行するにはどうすればよいですか?
コードが機能しない理由がわかりません。
これは私のコードです。エラー セグメントが表示される理由がわかりません。誰かが私に理由を説明してもらえますか?
perl - メインスクリプトが強制終了されたときに Perl の「システム」呼び出しを強制終了するにはどうすればよいですか?
この質問に対する以前の回答は、フォークに焦点を当てていました。
- シェル スクリプトの終了時にバックグラウンド プロセスを強制終了する
- 親が終了した後に子プロセスを終了させる方法は?
- fork() で作成された子プロセスは、親が強制終了されると自動的に強制終了されますか?
この質問では、'system' 関数の呼び出しについて質問しています。
sleep.plというスクリプトがあるとします:
次に、 kill.plというスクリプトがあります。
kill.pl を実行し、ps を使用して kill.pl のプロセス ID を見つけて強制終了します (kill -9 を使用せず、通常の強制終了のみ)。
sleep.pl はまだ眠っています。
私の質問の解決策には SIG ハンドラーが関係していると思いますが、子プロセスを強制終了するにはハンドラーに何を入れる必要がありますか?
windows - Windowsでtcp接続を切断/強制終了する
接続が切断されたときにプログラムがどのように応答するかを確認したいと思います。ネットワーク カードを無効にする以外に、プロセスまたは接続を所有するスレッドを強制終了せずに Windows で tcp 接続を切断する方法はありますか?
java - 指定された実行時間でスレッドを開始します
私のメインプロセスは外部ライブラリメソッドを呼び出します。このメソッドは時々ハングします。外部ライブラリは他社が担当しているため修正できません。
実行タイマーが定義されたライブラリ呼び出しにスレッドを使用したい。メソッド呼び出しに時間がかかる場合、メソッド呼び出しが行われるRunnableのあるスレッドは停止し、メインプロセスが進む必要があります。
- メインスレッド待機
- スレッドを実行する
- タイマースレッドを開始します
- タイマースレッドが終了したら、スレッドの実行を強制終了します
- スレッド停止メインを実行します
- スレッド履歴書
このロジックのコード、使用できるデザインパターン、または情報を読み取ることができるインターネットページを持っている人はいますか?
ありがとう
multithreading - JavaME 1.2スレッドを強制終了するためのベストプラクティス?
質問:WorkerThread
Java 1.2でバックグラウンドスレッド(このスレッドと呼びましょう)として実行されている長年の操作を強制終了するためのベストプラクティスを知りたいです。
シナリオ
具体的には、HTTP接続を確立するBlackberryデバイス用のアプリケーションを開発しています。全体像:バックグラウンドスレッド(WorkerThread
)に転送された場合のURL要求。スレッドは要求を行い、コールバックを使用して結果を返します。
シナリオの詳細
現在、接続時にデータ接続は存在するが、何らかの理由(トンネルを介してドライブ)でその接続が存在しなくなるという状況が存在します。Blackberryの設計アーキテクチャの制限により、タイムアウトが2分に固定されているため、実際の接続はハングします。その結果、比較的(15秒)長期間ハングしている接続を強制終了する必要があります。
私の現在の解決策-2Theads?
現在の私の現在の解決策は、WorkerThread
別のスレッド内で実行することです(この新しいスレッドと呼びましょうMonitorThead
)。MonitorThread
開始WorkerThread
し、1000ミリ秒間スリープしてから、WorkerThread
まだ生きているかどうかを定期的にチェックします。15秒後もWorkerThreadがまだ生きている場合、MonitorThreadはWorkerThreadをスリープ状態にして終了します。これは本当に最善のアプローチですか?
質問とキーポイントの要約
要約すると、以下は主要な質問とその質問に関連する重要な制約です。乾杯!
特定の操作でスタックしているJavaバックグラウンドスレッドを正常に強制終了するにはどうすればよいですか?
シナリオの制約:
- 操作を一時停止し、スレッドが要求した状態を確認する制御はありません
- BlackberryによるJavaME1.2とその スレッドAPIの実装に固有であるため、明示的な kill()メソッドはありません。
- ベストプラクティスと、保持スレッドを最も安全に強制終了する方法について最も懸念しています。
フォローアップ/編集
NeilCoffeyは、接続オブジェクトへの参照を保持し、代わりにそのオブジェクトでclose()を呼び出すことをお勧めします。私は現在これを調べています...