ли команда linux kill завершить дочерние процессы? - PullRequest
1 голос
/ 17 февраля 2010

Когда вы вызываете «kill» для родительского процесса, дочерние процессы также впоследствии уничтожаются?

Ответы [ 4 ]

6 голосов
/ 17 февраля 2010

Нет, не автоматически.

Обычно, когда родитель убит, ребенку будет отправлен сигнал HUP. По крайней мере, это так, когда родитель является оболочкой. Я не уверен, если это будет бесплатно, когда ребенок был fork () ed.

Но это можно победить, например, если родитель является оболочкой, а потомок был запущен с использованием nohup child&, или если сам ребенок объявил, что будет игнорировать сигналы HUP.

3 голосов
/ 17 февраля 2010

человек 2 убит

int kill(pid_t pid, int sig);

Если pid больше 0, sig должно быть отправлено процессу, чей идентификатор процесса равен pid .

Если pid отрицателен, но не равен -1, sig должен быть отправлен всем процессам (исключая неопределенный набор системных процессов), чей идентификатор группы процессов равен абсолютному значение pid , для которого процесс имеет разрешение на отправку сигнала.

Если не вызывается setpgid или подобная функция, дочерний процесс находится в той же группе процессов, что и его родительский процесс. Например, задания, запущенные вашей оболочкой, относятся к той же группе процессов, что и сама оболочка.

Таким образом, kill -HUP $$ отправляет SIGHUP в вашу оболочку, а kill -HUP -$$ отправляет SIGHUP всем процессам в текущем сеансе, включая дочерние элементы вашей оболочки.

0 голосов
/ 14 мая 2012

Этот скрипт bash убьет себя и дочерние процессы ... противоположность nohup.

#!/bin/bash

read pid cmd state ppid pgrp session tty_nr tpgid rest < /proc/self/stat
trap "kill -TERM -$pgrp; exit" EXIT TERM KILL SIGKILL

# run the program given on args
"$@"

exit $?

Кто-нибудь знает, есть ли такое встроенное устройство?

0 голосов
/ 17 февраля 2010

Да, будет; используйте kill -1: http://unixhelp.ed.ac.uk/shell/jobz5.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...