Страница 1 из 1

? Линукс скрипт

Добавлено: 12 сен 2008, 12:59
Algor
подскажите плз
в sh скрипте запускаю одновременно несколько фоновых задач (например scp), а как можно узнать, что выполнилась последняя из них и можно запускать следующие команды?

Re: ? Линукс скрипт

Добавлено: 12 сен 2008, 13:03
Marmot
Algor писал(а):подскажите плз
в sh скрипте запускаю одновременно несколько фоновых задач (например scp), а как можно узнать, что выполнилась последняя из них и можно запускать следующие команды?
А потупому в цикле с задержкой смотреть на PIDы?
Было бы интересно узнать как это сделать правильно на шелле.

PS
Я это все на Java делаю, мне так проще... :)

Re: ? Линукс скрипт

Добавлено: 12 сен 2008, 13:07
Algor
Marmot писал(а):А потупому в цикле с задержкой смотреть на PIDы?
Было бы интересно узнать как это сделать правильно на шелле.
Вот и мне интересно именно на шелле, а с ним я мало знаком. и как проверить "автоматически" pidы тоже с трудом представляю

Re: ? Линукс скрипт

Добавлено: 12 сен 2008, 13:13
Marmot
Algor писал(а):
Marmot писал(а):А потупому в цикле с задержкой смотреть на PIDы?
Было бы интересно узнать как это сделать правильно на шелле.
Вот и мне интересно именно на шелле, а с ним я мало знаком. и как проверить "автоматически" pidы тоже с трудом представляю
Это-то просто: ps -p $PID
Я не знаю как эти PIDы в массив засунуть :) а искать лениво :)

Re: ? Линукс скрипт

Добавлено: 12 сен 2008, 13:13
CdR
Мутить с получением PID процесса и потом "wait PID".

ps: в мане по шеллу почитать.

Re: ? Линукс скрипт

Добавлено: 12 сен 2008, 13:15
Marmot
CdR писал(а):Мутить с получением PID процесса и потом "wait PID".
О, все даже еще проще :)

Re: ? Линукс скрипт

Добавлено: 12 сен 2008, 13:17
Stanislav
Algor писал(а):подскажите плз
в sh скрипте запускаю одновременно несколько фоновых задач (например scp), а как можно узнать, что выполнилась последняя из них и можно запускать следующие команды?
scp в фоне? а можно постаноффку задачи...

Re: ? Линукс скрипт

Добавлено: 12 сен 2008, 13:30
Algor
да, wait PID -чувствую, то что нужно. сэнкс!
а может есть тогда и стандарное решение как запихать в переменную pid запускаемого процесса?

ps
а по постановке - это некая задача синхронизации данных из баз с десятка серверов , данные сначала забираются с них , обрабатываются в центре, и рассылаются обратно. ряд шагов должен выполняться последовательно, ряд параллельно

Re: ? Линукс скрипт

Добавлено: 12 сен 2008, 13:34
Marmot
Algor писал(а):да, wait PID -чувствую, то что нужно. сэнкс!
а может есть тогда и стандарное решение как запихать в переменную pid запускаемого процесса?

ps
а по постановке - это некая задача синхронизации данных из баз с десятка серверов , данные сначала забираются с них , обрабатываются в центре, и рассылаются обратно. ряд шагов должен выполняться последовательно, ряд параллельно
Блин, неужели нету простой паралельной запускалки с ожиданием ? Не верю! :)

Re: ? Линукс скрипт

Добавлено: 12 сен 2008, 13:34
CdR
Algor писал(а):да, wait PID -чувствую, то что нужно. сэнкс!
а может есть тогда и стандарное решение как запихать в переменную pid запускаемого процесса?
типа такого:

Код: Выделить всё

#!/bin/sh

xterm &
pid=$!
wait $!
echo  $pid done
man'ы рулят! :)

Re: ? Линукс скрипт

Добавлено: 12 сен 2008, 13:35
Аман Ванкуверский
Algor писал(а):да, wait PID -чувствую, то что нужно. сэнкс!
а может есть тогда и стандарное решение как запихать в переменную pid запускаемого процесса?
в баш-скрипте это будет $! для последнего запущенного и $$ для самого скрипта

p.s. опередили :)

Re: ? Линукс скрипт

Добавлено: 12 сен 2008, 13:39
Algor
Всем спасибо!!! :) Еще раз с праздником !!