Estações de trabalho on-line OnWorks Linux e Windows

Logotipo

Hospedagem online grátis para estações de trabalho

<Anterior | Conteúdo | Próxima>

esperar

Vamos demonstrar o esperar comando primeiro. Para fazer isso, precisaremos de dois scripts, um script pai:


#! / Bin / bash


# async-parent: demonstração de execução assíncrona (pai) echo "Pai: iniciando ..."

echo "Pai: iniciando script filho ..." async-child &

pid = $!

echo "Pai: filho (PID = $ pid) lançado."


echo "Pai: continuando ..." sono 2


echo "Pai: pausando para esperar a criança terminar ..." wait $ pid


echo "Pai: filho terminou. Continuando ..." echo "Pai: pai terminou. Saindo."

#! / Bin / bash


# async-parent: demonstração de execução assíncrona (pai) echo "Pai: iniciando ..."

echo "Pai: iniciando script filho ..." async-child &

pid = $!

echo "Pai: filho (PID = $ pid) lançado."


echo "Pai: continuando ..." sono 2


echo "Pai: pausando para esperar a criança terminar ..." wait $ pid


echo "Pai: filho terminou. Continuando ..." echo "Pai: pai terminou. Saindo."


e um script filho:



#! / Bin / bash

# async-child: demonstração de execução assíncrona (filho) echo "Criança: filho está executando ..."

dormir 5

echo "Criança: a criança acabou. Saindo."

#! / Bin / bash

# async-child: demonstração de execução assíncrona (filho) echo "Criança: filho está executando ..."

dormir 5

echo "Criança: a criança acabou. Saindo."


Neste exemplo, vemos que o script filho é muito simples. A ação real está sendo executada pelos pais. No script pai, o script filho é iniciado e colocado em segundo plano. O ID do processo do script filho é registrado atribuindo o pid variável com o valor do $! parâmetro shell, que sempre conterá o ID do processo do último trabalho colocado em segundo plano.

O script pai continua e, em seguida, executa um esperar comando com o PID do processo filho. Isso faz com que o script pai pause até que o script filho seja encerrado, ponto em que o script pai é concluído.

Quando executados, os scripts pai e filho produzem a seguinte saída:



[me @ linuxbox ~] $ pai assíncrono

Pai: começando ...

[me @ linuxbox ~] $ pai assíncrono

Pai: começando ...

Execução Assíncrona


Pai: iniciando script filho ... Pai: filho (PID = 6741) iniciado. Pai: continuando ...

Criança: criança está correndo ...

Pai: fazendo uma pausa para esperar que a criança termine ... Criança: a criança acabou. Saindo.

Pai: filho acabou. Continuando ... Pai: pai está feito. Saindo.

Pai: iniciando script filho ... Pai: filho (PID = 6741) iniciado. Pai: continuando ...

Criança: criança está correndo ...

Pai: fazendo uma pausa para esperar que a criança termine ... Criança: a criança acabou. Saindo.

Pai: filho acabou. Continuando ... Pai: pai está feito. Saindo.


Top OS Cloud Computing na OnWorks: