Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

ждать

Мы продемонстрируем ждать сначала команда. Для этого нам понадобятся два скрипта, родительский скрипт:


#! / Bin / Баш


# async-parent: Демонстрация асинхронного выполнения (родитель) echo "Родитель: запуск ..."

echo "Родитель: запуск дочернего скрипта ..." async-child &

pid = $!

echo "Родитель: дочерний элемент (PID = $ pid) запущен."


echo "Родитель: продолжается ..." сон 2


echo "Родитель: пауза, чтобы дождаться завершения дочернего процесса ..." wait $ pid


echo "Родитель: дочерний элемент завершен. Продолжение ..." echo "Родитель: родительский элемент завершен. Выход."

#! / Bin / Баш


# async-parent: Демонстрация асинхронного выполнения (родитель) echo "Родитель: запуск ..."

echo "Родитель: запуск дочернего скрипта ..." async-child &

pid = $!

echo "Родитель: дочерний элемент (PID = $ pid) запущен."


echo "Родитель: продолжается ..." сон 2


echo "Родитель: пауза, чтобы дождаться завершения дочернего процесса ..." wait $ pid


echo "Родитель: дочерний элемент завершен. Продолжение ..." echo "Родитель: родительский элемент завершен. Выход."


и дочерний сценарий:



#! / Bin / Баш

# async-child: Демонстрация асинхронного выполнения (дочерний элемент) echo «Дочерний элемент: дочерний элемент выполняется ...»

спать 5

echo "Ребенок: ребенок готов. Выход."

#! / Bin / Баш

# async-child: Демонстрация асинхронного выполнения (дочерний элемент) echo «Дочерний элемент: дочерний элемент выполняется ...»

спать 5

echo "Ребенок: ребенок готов. Выход."


В этом примере мы видим, что дочерний сценарий очень прост. Настоящее действие выполняет родитель. В родительском скрипте дочерний скрипт запускается и помещается в фоновый режим. Идентификатор процесса дочернего скрипта записывается путем присвоения ПИД-регулятор переменная со значением $! параметр оболочки, который всегда будет содержать идентификатор процесса последнего задания, переведенного в фоновый режим.

Родительский сценарий продолжается, а затем выполняет ждать команда с PID дочернего процесса. Это приводит к тому, что родительский сценарий приостанавливается до завершения дочернего сценария, после чего родительский сценарий завершается.

При выполнении родительский и дочерний скрипты производят следующий вывод:



[я @ linuxbox ~] $ асинхронный родитель

Родитель: начало ...

[я @ linuxbox ~] $ асинхронный родитель

Родитель: начало ...

Асинхронное выполнение


Родитель: запуск дочернего скрипта ... Родитель: дочерний (PID = 6741) запущен. Родитель: продолжается ...

Ребенок: ребенок бежит ...

Родитель: пауза, чтобы ждать, пока ребенок закончит ... Ребенок: ребенок готов. Выход.

Родитель: ребенок закончил. Продолжаем ... Родитель: родитель готов. Выход.

Родитель: запуск дочернего скрипта ... Родитель: дочерний (PID = 6741) запущен. Родитель: продолжается ...

Ребенок: ребенок бежит ...

Родитель: пауза, чтобы ждать, пока ребенок закончит ... Ребенок: ребенок готов. Выход.

Родитель: ребенок закончил. Продолжаем ... Родитель: родитель готов. Выход.


Лучшие облачные вычисления для ОС в OnWorks: