[Comm] Убивание процесса со всеми его дочками
Vladimir Karpinsky
vkarpinsky на mail.ru
Пн Янв 30 22:01:59 MSK 2012
30.01.2012 21:26, Anton Protopopov пишет:
> 30 января 2012 г. 19:50 пользователь Vladimir Karpinsky
> Если у процесса дети имеются только в первом поколении, то попробуйте
> выполнить следующие команды:
> # kill -s STOP $pid
> # pkill -9 -P $pid
> # kill -9 $pid
> где $pid - это PID родителя. Первая команда остановит процесс $pid,
> чтобы он больше не размножался, вторая - убьет всех его детей,
> третья - убьет его самого (во сне).
Внуки тоже есть, и правнуки:
$ ps -axf
...
17244 pts/5 S 0:00 | \_ /bin/bash /home/karp/bin/get_data
17272 pts/5 S 0:00 | | \_ /bin/bash
/home/karp/bin/remdisk
17284 pts/5 S 0:00 | | \_ rsync -aqz --no-p --no-g
--chmod=u=rw,g...
17296 pts/5 S 0:00 | | \_ rsync -aqz --no-p
--no-g --chmod=u=...
...
Внучатым процессом в данном случае выступает rsync, он ещё порождает свой
подпроцесс. Таким образом не получается убить ни его, ни его подпроцесс. А
есть ли возможность всё дерево вычислить? Можно этот вывод погрепать,
поавкать и поседить, но тут не просто, тем болле, что аналогичных процессов
м.б. больше одного. Я точно знаю ppid, могу знать pid дочернего процесса, а
дальше уже трудно.
--
С уважением,
Владимир.
Подробная информация о списке рассылки community