[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