The OpenNET Project / Index page

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

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

"как запустить фоновый процесс и дождаться его завершения из ..."  
Сообщение от Zolg (ok) on 12-Янв-07, 13:13 
Для диагностики периодически возникающей неисправности в сети необходимо при определенном условии (падение ppp-линка) запустить одновременно несколько ping'ов, перенаправив их вывод в файлы, дождаться их завершения, склеить выходные файлы и отправить на мыло. Вопрос в том, как из шел скрипта запустить несколько [одновременно работающих] процессов и дождаться их завершения ?
спасибо.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

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


1. "как запустить фоновый процесс и дождаться его завершения из ..."  
Сообщение от EL (??) on 12-Янв-07, 14:32 
>Для диагностики периодически возникающей неисправности в сети необходимо при определенном условии (падение
>ppp-линка) запустить одновременно несколько ping'ов, перенаправив их вывод в файлы, дождаться
>их завершения, склеить выходные файлы и отправить на мыло. Вопрос в
>том, как из шел скрипта запустить несколько [одновременно работающих] процессов и
>дождаться их завершения ?
>спасибо.

А зачем так сложно? Есть fping

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "как запустить фоновый процесс и дождаться его завершения из ..."  
Сообщение от Zolg (ok) on 12-Янв-07, 15:19 
спасибо, то что нужно !


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "как запустить фоновый процесс и дождаться его завершения из ..."  
Сообщение от ctax (??) on 12-Янв-07, 15:17 
>Для диагностики периодически возникающей неисправности в сети необходимо при определенном условии (падение
>ppp-линка) запустить одновременно несколько ping'ов, перенаправив их вывод в файлы, дождаться
>их завершения, склеить выходные файлы и отправить на мыло. Вопрос в
>том, как из шел скрипта запустить несколько [одновременно работающих] процессов и
>дождаться их завершения ?
>спасибо.


for COUNT in `seq 3`
do
    ping -c 3 ya.ru  2>&1 >ping.log$COUNT
done

while [ -n `ps | grep ping | grep -v grep` ]
do
    sleep 1
done

cat ping.log* >PING.log

rm -f ping.log*

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "как запустить фоновый процесс и дождаться его завершения из ..."  
Сообщение от Zolg (ok) on 12-Янв-07, 15:32 
чисто из любопытства: а более элегантного способа, чем поллинг пинга в списке процессов нет ? не знаток юниксового программинга, но под WinAPI это было бы что-то вроде
handles[i] = CreateProcess(...);
WaitForMultiplyObjects(handles,...);

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "как запустить фоновый процесс и дождаться его завершения из ..."  
Сообщение от ctax (??) on 12-Янв-07, 15:56 
>чисто из любопытства: а более элегантного способа, чем поллинг пинга в списке
>процессов нет ? не знаток юниксового программинга, но под WinAPI это
>было бы что-то вроде
>handles[i] = CreateProcess(...);
>WaitForMultiplyObjects(handles,...);


>Вопрос в том, как из шел скрипта запустить несколько

ШЕЛ СКРИПТА!!!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "как запустить фоновый процесс и дождаться его завершения из ..."  
Сообщение от Zolg (ok) on 12-Янв-07, 16:27 
>ШЕЛ СКРИПТА!!!
ну так це все ж таки не редмондское поделие :) ради любви к искусству полез по манам, как оказалось все совсем не просто (а очень просто):

ping -c 4 host1 > host1.log&
ping -c 4 host2 > host2.log&
ping -c 4 host3 > host3.log&
wait


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "как запустить фоновый процесс и дождаться его завершения из ..."  
Сообщение от newser (ok) on 12-Янв-07, 17:00 
>>ШЕЛ СКРИПТА!!!
>ну так це все ж таки не редмондское поделие :) ради любви
>к искусству полез по манам, как оказалось все совсем не просто
>(а очень просто):
>
>ping -c 4 host1 > host1.log&
>ping -c 4 host2 > host2.log&
>ping -c 4 host3 > host3.log&
>wait

Ага, а еще можно ждать определенный процесс:

ping -c 4 host1 > host1.log &
pid=$!
...
wait $pid

ну и т.д. В общем, всяких возможностей много. :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "как запустить фоновый процесс и дождаться его завершения из ..."  
Сообщение от ctax (??) on 13-Янв-07, 11:44 
>>ШЕЛ СКРИПТА!!!
>ну так це все ж таки не редмондское поделие :) ради любви
>к искусству полез по манам, как оказалось все совсем не просто
>(а очень просто):
>
>ping -c 4 host1 > host1.log&
>ping -c 4 host2 > host2.log&
>ping -c 4 host3 > host3.log&
>wait


Не знал про wait :). Действительно так намного лучше

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

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

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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