Oi MrBiTs,
Obrigado pela explicação, mas no 3) se usar (wait $PID), ele para e
espera até eu fechar a janela. A intenção da minha pergunta era:
Como eu espero até o status ficar "S" testando a cada 250ms?
Ah! alguem me sugeriu para o 2) de usar (usando um n. de pid exemplo)
ps o stat --pid 2970 --no-headers
que já retorna "S", será que também funciona no Slack?
grato,
Alain
MrBiTs escreveu:
1) como saber o PID de um comando iniciado com &
PID=$!
2) como descobrir que está em sleep
Depende muito da versão do comando, do tipo de Unix que você está trabalhando. Em um Linux Slackware 10.1, top versão 3.2.5, um comando similar a
$ top -b | grep processo
nos devolveria algo como:
25925 root 15 0 1356 1356 1008 S 0.0 0.2 0:00 processo
E o 8o campo nos dá o status do processo. Se for S, está em sleep. Você poderia fazer algo como
STATUS=$(top -b -n 1 | grep $PID | awk '{print $8}')
if [ $STATUS -eq "S" ] ; then
echo "Processo $PID dormindo"
fi
Usei grep $PID e não grep processo para termos certeza de que conseguimos o
status do processo que queremos.
3) como esperar?
wait $PID
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Links do Yahoo! Grupos