私は、シェルによって開始され、シェルによって終了されるアプリケーションを持っています。私のアプリケーションでは、アプリケーションの負荷を軽減するためにforkを作成しました。現在、2つのプロセスが異なるPIDで同じ名前で実行されています。今私は自分のプログラムを終了したい。シェルのプロセスのPIDでkillすると、親プロセスを殺してゾンビプロセスとして残し、子プロセスは残る。だから、シェルを介して子プロセスと親プロセスの両方を殺す方法は?シェルで親プロセスと子プロセスを削除する方法は?
1
A
答えて
2
コマンドkillall
を参照してください。
+0
私はターミナルでkill -9 processnameを使用することができますが、私のアプリケーションは1つの子を持っているので、シェルまたは私のアプリケーションで使用することはできません子プロセスに別の子プロセスがあるので、私は自分のアプリケーションで2番目の子プロセスを終了し、シェルの最初の子プロセスをkillするか、親プロセスを終了します。 –
2
あなたはpkill -P <parent_pid_name>
があなたpid
の代わりに、この場合も、子供が生まれとkill <signal number> <pid>
続いたあなたの親プロセスIDを意味しない、あなたのプロセスのpid
とppid
を取得するには、次の
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
を取得しますps -el
を行いますすべての子を産んだ親プロセスIDを与える必要があります。
1
あなたの父親のプロセスは、終了する前にSIGTERMを捕まえてその子を殺す必要があります。
私はあなたが「killallを」コマンドで同じ名前を持つすべてのプロセスを殺すことができるC
int child;
void sighandler(int sig) {
if (sig == SIGTERM) {
if (child != -1) kill(child, SIGTERM);
}
}
int main() {
int i;
child = -1;
signal(SIGCHLD, SIG_IGN);
signal(SIGTERM, sighandler);
setsid();
setpgid(0,0);
i = fork();
switch(i) {
case -1:
break;
case 0: // child
sleep (100);
break;
default:
child = i;
sleep (100);
break;
}
return 0;
}
でこれを書いています。
0
pkillコマンドを使用すると、プロセスを強制終了できます。またkillall
関連する問題
- 1. 親プロセスの子プロセスのツリーを削除する方法
- 2. 子プロセスから親cmd.exeシェルに値を渡す方法は?
- 3. cで親プロセスと子プロセスを共有する方法
- 4. 子プロセス/親プロセス
- 5. fork()子プロセスと親プロセス
- 6. 親プロセスに応じて子プロセスを作成する方法は?
- 7. 親プロセスから子プロセスを取得する方法
- 8. フォーク()親と子プロセス
- 9. 子プロセスから親プロセスに値を書き込む方法は?
- 10. 子プロセスと親プロセスの間のpipe()
- 11. 親プロセスと子プロセスの間の通信
- 12. 子プロセスと親プロセスの間のPOSIXセマフォ
- 13. 子プロセスを実行し、Cで親プロセスを操作する方法は?
- 14. 親子プロセス
- 15. akkaでは、親プロセスと同じプロセスで子プロセスを実行しますか?
- 16. 子プロセスと親プロセスの間でipcオブジェクトを共有する
- 17. 子プロセスから親シェルの作業ディレクトリを取得する
- 18. 子プロセスと親プロセスの間でデッドロック状態が発生する
- 19. 子プロセスが終了した後、親プロセスを実行する方法は?
- 20. 子プロセスから親プロセスのアドレス空間にアクセスする方法は?
- 21. 親プロセスと子プロセスがIPC共有メモリを共有する
- 22. 親プロセスの子プロセスの数C/C++、LINUX
- 23. 親プロセスから子プロセスへのWebcamストリーム
- 24. 親子プロセスの実行を同期する方法は?
- 25. 子プロセスから親プロセスに通知するための最良の方法
- 26. MSBuild削除プロセス
- 27. ctrl + Cまたはctrl + Zで親プロセスとその子プロセスを強制終了する方法
- 28. Bashで子プロセスを削除するには?
- 29. プロセスを実行する前にサブチャイルドと親プロセスを待つ方法は?
- 30. シグナルを使った親プロセスと複数の子プロセスのプロセス同期
私はあなたが負のPIDを使用することができます.... – pragati