[解決済み] 親プロセスの子プロセスをすべて終了させ、親プロセスは存続させる。
2022-02-28 20:42:02
質問
親を殺さず、その親のプロセスをすべて殺すには、どのような方法があるでしょうか?例えば、私がフォークした不定数の子プロセスを持っていて、与えられたアラームで、私のシグナルハンドラで、私の子プロセスをすべて殺すが、様々な理由で私自身は実行したままにしたいと思います。
今のところ、私はkill(-1*parentPid, SIGKILL)を使用していますが、これは私の親をその子供と一緒に殺します。
どうすればいいですか?
これを達成する1つの方法は、キャッチできる何らかのシグナルを配信することです(not
SIGKILL
). そして、現在のプロセスが親プロセスかどうかを検出するシグナルハンドラを設置し、そのハンドラから
_exit()
親プロセスでない場合
を使用することができます。
SIGUSR1
または
SIGUSR2
または、おそらく
SIGQUIT
.
このテクニックを図解してみました こちら .
オプションとして (Lidong が提案したように)、親プロセスで
SIG_IGN
を発行する前に、シグナルに対して
kill()
コマンドを使用します。
signal(SIGQUIT, SIG_IGN);
kill(0, SIGQUIT);
関連
-
[解決済み】stdinとSTDIN_FILENOの違いは何ですか?
-
[解決済み] c - 初期化がキャストなしでポインタから整数を作る、さらに2つのコンパイラーエラー
-
[解決済み] (.text+0x20): `main'への未定義の参照と関数への未定義の参照
-
[解決済み] strtokのセグメンテーションフォールト
-
[解決済み】式は、単純なポインタ演算を使用して完全なオブジェクト型へのポインタでなければなりません【重複】。
-
[解決済み】C言語で多重定義を防ぐには?
-
[解決済み】LinuxのI_PUSHに相当するもの
-
[解決済み】int型配列へのポインタのスカラ・イニシャライザの過剰要素
-
[解決済み】配列型char[]が代入できない [重複]。
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】警告:互換性のないポインタ型からの代入
-
[解決済み】エラー:'for'ループの初期宣言はC99モードでしかできない【重複
-
[解決済み】 strcpyとstrdupの比較
-
[解決済み】警告。この関数ではXが初期化されていない状態で使用される可能性があります。
-
[解決済み】cudamalloc()の使用。) なぜダブルポインタなのか?
-
[解決済み】fgetsによるセグメンテーションフォールト(コアダンプ) - と思う。
-
[解決済み] [Solved] .Cファイルをコンパイルしています。アーキテクチャ x86_64 の未定義シンボル
-
[解決済み] エラー: `itoa` はこのスコープで宣言されていません。
-
[解決済み】makefile:4。*** missing separator. 停止する
-
[解決済み】whileループの時間複雑性(Big O)はどうやったらわかるの?