The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Убить все процессы порожденные скриптом"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Убить все процессы порожденные скриптом"  +/
Сообщение от Vaur on 31-Мрт-11, 15:41 
1. script:

ourfunc()
{
while read line; do
echo $line | grep "выбираем" > file2.log
done < /dev/stdin
}

/usr/bin/tail -F file1.log | ourfunc


2. Запускаем script из консоли, работает...
Делаем Ctrl-C, скрипт остановился все ок, все запущенные script'ом процессы остановились.

3. Запускаем скрипт:
# daemon script

Делаем:
kill -9 pid_scripta

Видим, что в процессах script отсутствует, но остался процесс:
/usr/bin/tail -F file1.log

4. Почему так, ведь родительский процесс убит?

Еще: если сразу убить процесс /usr/bin/tail -F file1.log
то и родительский процесс script помрет...

5. Как правильно убить script, что бы не осталось порожденных процессов?


Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "процессы порожденные скриптом"  +/
Сообщение от Andrey Mitrofanov on 31-Мрт-11, 15:56 
> ourfunc()
> {
> while read line; do
> echo $line | grep "выбираем" > file2.log
> done < /dev/stdin
> }

Про убивание ничего не скажу, но эта конструкция глаз режет. Надо так:

ourfunc()
{
grep "выбираем" > file2.log
}

> /usr/bin/tail -F file1.log | ourfunc

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "процессы порожденные скриптом"  +/
Сообщение от Vaur on 31-Мрт-11, 20:28 
Проходили :)
Тогда он выберет всего одну строку,
а мне надо на лету все строки брать.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

5. "процессы порожденные скриптом"  +/
Сообщение от Andrey Mitrofanov on 01-Апр-11, 10:09 
> Проходили :)
> Тогда он выберет всего одну строку,
> а мне надо на лету все строки брать.

Ааа, вижу. Только не "всего одну", а при убивании скрипта, наверное, буферизация приводит к потере данных.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

2. "Убить все процессы порожденные скриптом"  +/
Сообщение от sany email(ok) on 31-Мрт-11, 17:24 
> 5. Как правильно убить script, что бы не осталось порожденных процессов?

нужно послать группе процессов, то есть послать отрицательному пиду.
например pid=4567

kill -TERM -4567

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Убить все процессы порожденные скриптом"  +/
Сообщение от Waur (ok) on 31-Мрт-11, 20:32 
Помогло! Спасибо.
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру