shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Problemas com o IF


From: Claudio Braz
Subject: Re: [shell-script] Problemas com o IF
Date: Tue, 10 May 2011 20:14:12 -0300

Boa noite Galera,

Sou novato em linux e mexo em shell script mais por curiosidade mesmo..
Eu dei uma lida no Papo de butequim e aprendi uns macetes legais lá e por
isso vou arriscar um palpíte....

Nao seria melhor colocar o "ps -ef |grep apache2 | grep -v grep" dentro do
proprio "if" ???
caso o programa esteja rodando vai retornar 0 e satisfazer a condição do IF,
e caso nao tenha retorna 1 e nao satisfaz o IF.



Em 10 de maio de 2011 18:47, MrBiTs <address@hidden> escreveu:

>
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
>
> On 05/10/2011 18:10 , address@hidden wrote:
> > Prezados,
> >
> > Sou novo no forum e novo no mundo do Shell Script, mas estou adorando a
> experiência de programar, estou estudando via foruns por este motivo tenho
> muitas duvidas, estou tentando montar um Script que monitore algum serviço e
> se estiver parado que starte novamente, neste caso o Apache, se possível,
> poderiam me ajudar com o motivo desse pequeno e humilde script não
> funcionar?
> >
> > #!/bin/bash
> > TESTE=`ps -ef |grep apache2 | grep -v grep |awk {'print $2'}`
> > if [ $TESTE-z ]
> > then
> > sudo /etc/init.d/apache2 stop
> > sudo /etc/init.d/apache2 start
> > sleep 15
> > fi
> >
> > Se eu coloco o 2>&- no final do script ele nem da erro.
> >
> > Agradeço a atenção.
> >
> > Carlos
>
> Vamos começar pelo simples. Você sabe o que significa 2> ? Significa que
> você está direcionando STDERR para algum lugar. Então, é
> natural que você não veja mas mensagens de erro.
>
> Eu faço coisas parecidas em uns servidores safados por aí. O seu teste está
> errado. Você viu qual é o resultado do seu ps com os
> pipes ? Ele vai colocar na variável TESTE uma série de PIDs e o test (
> alias [ ) dá um erro de too many arguments, erro esse que
> você poderia ter reportado, já que ninguém tem bola de cristal por aqui.
> Mas esses gurus sabem de tudo e passam o dia só respondendo
> e-mail, então está tudo certo com o mundo.
>
> Eu utilizaria uma construção mais simples, com o pidof. Além disso, o teste
> está errado porque o -z está após a variável que você
> quer testar, quando ele deveria vir antes. Então algo assim:
>
> TESTE=$(pidof apache2)
>
> if [ -z "$TESTE"] ; then
> resto do seu script
>
> Proteja a variável TESTE entre aspas, para não ter o erro de too many
> arguments.
>
> - --
>
> LLAP
>
> .0. MrBiTs - address@hidden
> ..0 GnuPG -
> http://keyserver.fug.com.br:11371/pks/lookup?op=get&search=0x6EC818FC2B3CA5AB
> 000 http://www.mrbits.com.br
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (Darwin)
>
> iQEcBAEBCAAGBQJNybKLAAoJEG7IGPwrPKWrPQIH/jhTlsXx4AveJJg23SVxB0hj
> 3tTGg5Ns+UzTsktK13FcacWlhvRQk0YYx/uer0ryRhJQQ3bUAJQ0HIgaSZDtMJ51
> v7qw3fLlA0tF8M6QPqc+JZ61qCBbYuFzzJE7SiqwqrgyjahCtqgkieogwQId7yQS
> scymjVwMfsgP5V2MVQBYDBU46Pq46zK/N8JE274MYn8rjjwEwQvAuSp75vhQLAAY
> VUmERV/skqe9A+kzNtbmqqJXnaEgYXO5euBqmAWnFlj+WKLGNAbvADmZwMTnSwgC
> kmXDLs6HyNZvFvTruH7E2zLgbudwBJn4UhgVQAPofTyZT/gPZdXWxLLk0kdAc+M=
> =KI11
> -----END PGP SIGNATURE-----
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]