[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: RES: [shell-script] Dica: Testar a existencia de um processo
From: |
Mateus Caruccio |
Subject: |
Re: RES: [shell-script] Dica: Testar a existencia de um processo |
Date: |
Thu, 06 Nov 2003 00:58:39 +0800 |
Alo Rodolfo,
Nao sei pq as pessoas tem esse "medo" do kill. Deve ser por causa do nome ;)
Na verdade, qq ferramenta eh uma "arma descarregada". se tu souber como
usar, nao vai te fazer mal algum. Para isso, eh so usar o sinal -0 hardcoded.
Outro ponto eh nao usar o kill como root.
Isso sem contar que teu script consome varios ciclos de cpu a mais que o kill
-0 (imagine isso em um script realmente grande).
exemplo:
# cria subshell e um pipe entre dois processos, atribuio o stdout para "$var"
(cria uma variavel)
var=$(ps ax|grep [b]ash)
# executa o /bin/test (ou o builtin '[' na melhor das hipoteses) e verifica
valor de retorno, substituindo, antes, o valor de $var
if [ ! -z "$var" ]; then
echo "codigo caso exista o processo"
fi
agora veja esse:
if killall -0 bash; then # executa killall e verifica codigo de retorno
echo "codigo caso exista o processo"
fi
As solucoes existem aos milhares, basta escolher o meio.
[]s
Mateus
----- Original Message -----
From: "Rodolfo Villanova - TmS Brasil" <address@hidden>
Date: Wed, 5 Nov 2003 14:30:52 -0200
To: <address@hidden>
Subject: RES: [shell-script] Dica: Testar a existencia de um processo
> Olá, Mateus!
>
> Achei interessante a tua dica.
> Mas ao mesmo tempo fiquei apreensivo: imaginei que se eu usar o comando
> "kill" dessa forma, seria como manipular uma arma descarregada.
> Aparentemente é seguro, porém sempre há o risco de ocorrer um acidente!
>
> Claro, cada um tem o seu jeito de programar, que procuro respeitar, pois
> existem diferentes formas de abordar a solução de um problema; eu
> particularmente prefiro usar só o comando "ps" com o filtro desejado e
> depois testar se a saída foi vazia.
>
> Grande abraço,
> -----------------
> Rodolfo Villanova
>
> > -----Mensagem original-----
> > De: Mateus Caruccio [mailto:address@hidden]
> > Enviada em: quarta-feira, 5 de novembro de 2003 13:28
> > Para: address@hidden
> > Assunto: [shell-script] Dica: Testar a existencia de um processo
> >
> >
> > Ola,
> >
> > Se você quiser saber se um determinado processo esta rodando,
> > basta enviar o sinal 0 (zero) para ele:
> >
> > $ ps
> > PID TTY TIME CMD
> > 1289 pts/0 00:00:00 bash
> > 1920 pts/0 00:00:00 ps
> > $ kill -0 1289
> > $ echo $?
> > 0
> > $ killall -0 bash
> > $ echo $?
> > 0
> > $ kill -0 1234567
> > bash: kill: (1234567) - No such process
> > $ echo $?
> > 1
> > $ killall -0 nonexistingprocess
> > nonexistingprocess: no process killed
> > $ echo $?
> > 1
> > $ if ! kill -0 1234567 2>/dev/null; then
> > > echo nao existe;
> > > fi
> > nao existe
> >
> >
> > # ########################################################
> > # Mateus de Oliveira Caruccio <caruccio at operamail.com>
> > # Linux User #183552 - UIN #37364320
> > # Vim, vi e matei o Emacs !
>
>
>
> ---------------------------------------------------------------------
> 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.listasdiscussao.cjb.net
> ---------------------------------------------------------------------
>
>
> Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
> http://br.yahoo.com/info/utos.html
>
>
# ########################################################
# Mateus de Oliveira Caruccio <caruccio at operamail.com>
# Linux User #183552 - UIN #37364320
# Vim, vi e matei o Emacs !
--
___________________________________________________
OperaMail free e-mail - http://www.operamail.com
OperaMail Premium - 28MB, POP3, more! US$29.99/year
Powered by Outblaze