LINUX.ORG.RU

Может я конечно туплю, но почему не так:

ps -x --format="%p %r" | grep $$ | awk  '// { print $2 } '

Кстати, а зачем оно тебе? %)

tarle
()
Ответ на: комментарий от tarle

Спасибо! Действительно, то что нужно... А надо это для убиения всех процессов, который данный скрипт запустил, и всех их потомков.

anonymous
()
Ответ на: комментарий от anonymous

> Действительно, то что нужно... А надо это для убиения всех процессов, который данный скрипт запустил, и всех их потомков.

мне это тоже нужно.. Но имхо не все так просто. Если не делается локов, то за время выполнения ps...kill могут народится еще дети и/или внуки. Если ты убъешь ребенка, то внук, которого мог не учесть ps перейдет в дети к init'у.

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

> для убиения всех процессов, который данный скрипт запустил, и всех их потомков.

А почему просто kill -1 не сказать?

Die-Hard ★★★★★
()
Ответ на: комментарий от Die-Hard

> А почему просто kill -1 не сказать? 

то есть скрипт самому себе посылает HUP и все его потомки автоматически умрут?? Потомки все конечно добропорядочные. 

Так можно?: 

on_int()
{
    cleanup
    kill -1 $$
} 

trap on_int 2 

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

то есть кроме вопроса сработает ли kill -1, еще вопрос можно ли посылать сигнал внутри обработчика сигнала.

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

2dilmah:

Пардон, круто перепутал: не kill -1, а kill 0.

kill -9 -$$ убъет всех в нашей группе.

kill -9 0 сделает то же самое

kill -1 0 пошлет всем в группе HUP

Die-Hard ★★★★★
()
Ответ на: комментарий от Die-Hard

> kill -1 0 пошлет всем в группе HUP

в Linux есть еще одна очень полезная вещь.

kill(-1, SIG_NR) пошлет сигнал всем процессам, кроме посылающего и инита.

дойдет сигнал только до тех процессов, к которым есть "права доступа".

idle ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.