Discussion:
[shell-script] Re: Monitoramento de processos
itamarnet@yahoo.com.br [shell-script]
2018-02-21 16:23:36 UTC
Permalink
Caro Eldimar

porque usar a opção -fl no pgrep? Sem essa opção não precisa mais do head e nem do awk:


PID=$(pgrep processo)



E vc pode testar o retorno mesmo assim, ou a quantidade de PID retornados, por exemplo


if [ $? -eq 0 ]
then
qtde=$(echo "$PID" | wc -w)
if [ $qtde -eq 2 ]
then

echo "$(date) serviços rodando normalmente (" $PID ")"
elif [ $qtde -gt 2 ]

then

echo "$(date) mais de 2 serviços rodando (" $PID ")"

else

echo "$(date) um dos serviços parado"

servico

fi

else
echo "$(date) serviço parado, restartando serviço"
servico
fi


É só um exemplo de como poderia ver isso, mas também poderia usar array, mas eu creio ser desnecessário.


[]'s
Itamar
itamarnet@yahoo.com.br [shell-script]
2018-02-21 16:34:33 UTC
Permalink
Caro Eldimar


porque usar a opção -fl no pgrep? Sem essa opção não precisa mais do head e nem do awk:


PID=$(pgrep processo)


E vc pode testar o retorno mesmo assim, ou a quantidade de PID retornados, por exemplo


if [ $? -eq 0 ]
then
qtde=$(echo "$PID" | wc -w)
if [ $qtde -eq 2 ]
then
echo "$(date) serviços rodando normalmente (" $PID ")"
elif [ $qtde -gt 2 ]
then
echo "$(date) mais de 2 serviços rodando (" $PID ")"
else
echo "$(date) um dos serviços parado"
servico
fi
else
echo "$(date) serviço parado, restartando serviço"
servico
fi


É só um exemplo de como poderia ver isso, mas também poderia usar array, mas eu creio ser desnecessário.


[]'s
Itamar
Eldimar Souza eldimax@gmail.com [shell-script]
2018-02-21 17:16:10 UTC
Permalink
Caro Itamar,

desculpa, não entendi muito bem, tenho um sistema chamado roboloide, se
faço um pgrep roboloide ele me mostra os seguintes processos.

2634 roboloide-captu
2635 tee
2637 roboloide-ajust
2638 tee
2645 roboloide-model
2646 tee
2655 gunicorn
2656 tee
2657 gunicorn
2658 tee
2660 roboloide-contr
2661 tee
2694 gunicorn
2695 gunicorn
2696 gunicorn
2697 gunicorn
2698 gunicorn
2699 gunicorn
2700 gunicorn
2701 gunicorn
2703 gunicorn
2704 gunicorn
2705 gunicorn
2706 gunicorn
2707 gunicorn
2708 gunicorn
2709 gunicorn
2710 gunicorn
2711 gunicorn
2712 gunicorn
2748 node
2820 node

as vezes, os seguintes processos param


2634 roboloide-captu
2637 roboloide-ajust
2645 roboloide-model

dai queria verificar e caso os mesmos tenham parado, chamar o serviço
novamente
Post by ***@yahoo.com.br [shell-script]
Caro Eldimar
porque usar a opção -fl no pgrep? Sem essa opção não precisa mais do head
PID=$(pgrep processo)
E vc pode testar o retorno mesmo assim, ou a quantidade de PID retornados, por exemplo
if [ $? -eq 0 ]
then
qtde=$(echo "$PID" | wc -w)
if [ $qtde -eq 2 ]
then
echo "$(date) serviços rodando normalmente (" $PID ")"
elif [ $qtde -gt 2 ]
then
echo "$(date) mais de 2 serviços rodando (" $PID ")"
else
echo "$(date) um dos serviços parado"
servico
fi
else
echo "$(date) serviço parado, restartando serviço"
servico
fi
É só um exemplo de como poderia ver isso, mas também poderia usar array,
mas eu creio ser desnecessário.
[]'s
Itamar
--
Eldimar Jaconias de Souza
Analista de Suporte Pleno
Tel: (61) 9228-9214 / 3048-1034

"O que fazer, pra onde ir senhor se só tu tens as palavras de Vida Eterna"

ºvº "Software Livre: não é pelo dinheiro.
/( _ )\ É uma questão de consciência."
^ ^
'Julio C. Neves' julio.neves@gmail.com [shell-script]
2018-02-21 17:29:20 UTC
Permalink
Não recebi o e-mail que iniciou esta thread, mas se forem só esses 3
processos que param, desconfio que vc quer algo do tipo:

for Proc in captu ajust model
do
ps aux | grep -q "\bromboloide-$Proc\b" || cmd que inicia $Proc
done

Se houverem mais processos, basta incluir seus nome na lista do for

Abraços,
Julio

*» Não tem tempo para fazer um curso presencial?*
*» Na sua cidade não tem nenhum bom curso de Linux?*
*» O treinamento está muito caro?*

*Ministramos um excelente treinamento de Shell,*
*no **formato EAD. **Veja os detalhes aqui.*
<http://www.dicas-l.com.br/programacao-shell-linux/>

*Damos treinamento em sua empresa **com certificado*
*e nota fiscal **por **um preço, **no mínimo, 50% **abaixo*
*de qualquer curso.*

​​
Nosso time de instrutores *in company* é formado somente por
​
​
autores
​ ​
​
de
*Best Sellers​ ​*​laureados ​sobre os temas.. P. exemplo:

Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo Cadunico
Post by Eldimar Souza ***@gmail.com [shell-script]
Caro Itamar,
desculpa, não entendi muito bem, tenho um sistema chamado roboloide, se
faço um pgrep roboloide ele me mostra os seguintes processos.
2634 roboloide-captu
2635 tee
2637 roboloide-ajust
2638 tee
2645 roboloide-model
2646 tee
2655 gunicorn
2656 tee
2657 gunicorn
2658 tee
2660 roboloide-contr
2661 tee
2694 gunicorn
2695 gunicorn
2696 gunicorn
2697 gunicorn
2698 gunicorn
2699 gunicorn
2700 gunicorn
2701 gunicorn
2703 gunicorn
2704 gunicorn
2705 gunicorn
2706 gunicorn
2707 gunicorn
2708 gunicorn
2709 gunicorn
2710 gunicorn
2711 gunicorn
2712 gunicorn
2748 node
2820 node
as vezes, os seguintes processos param
2634 roboloide-captu
2637 roboloide-ajust
2645 roboloide-model
dai queria verificar e caso os mesmos tenham parado, chamar o serviço
novamente
Post by ***@yahoo.com.br [shell-script]
Caro Eldimar
porque usar a opção -fl no pgrep? Sem essa opção não precisa mais do head
PID=$(pgrep processo)
E vc pode testar o retorno mesmo assim, ou a quantidade de PID retornados, por exemplo
if [ $? -eq 0 ]
then
qtde=$(echo "$PID" | wc -w)
if [ $qtde -eq 2 ]
then
echo "$(date) serviços rodando normalmente (" $PID ")"
elif [ $qtde -gt 2 ]
then
echo "$(date) mais de 2 serviços rodando (" $PID ")"
else
echo "$(date) um dos serviços parado"
servico
fi
else
echo "$(date) serviço parado, restartando serviço"
servico
fi
É só um exemplo de como poderia ver isso, mas também poderia usar array,
mas eu creio ser desnecessário.
[]'s
Itamar
--
Eldimar Jaconias de Souza
Analista de Suporte Pleno
Tel: (61) 9228-9214 / 3048-1034
"O que fazer, pra onde ir senhor se só tu tens as palavras de Vida Eterna"
ºvº "Software Livre: não é pelo dinheiro.
/( _ )\ É uma questão de consciência."
^ ^
itamarnet@yahoo.com.br [shell-script]
2018-02-21 18:47:19 UTC
Permalink
Senhores, o yahoo está estranho mesmo, a minha resposta foi mandada 2 vezes e às vezes também acontece de não receber algumas mensagens. Preocupante!

Caro Eldimar, no meu caso usando apenas " pgrep " o que me retorna é apenas os números PIDS, a listagem que aparece para você só apareceria para mim se eu usasse o comando " pgrep -l ".
Talvez existe um alias que redefina o formato de saída do " pgrep " no seu caso.


Mas a solução do Julio é ideal na forma, apenas usaria ao invés de " ps aux | grep " como ele adotou o " pgrep " em substituição.


Se já sabes quais os processos que travam poderia restringir a pesquisa nesses especificamente.


[]'s
Itamar
phfbettega@yahoo.com.br [shell-script]
2018-02-21 18:01:18 UTC
Permalink
Estou como o Mestre Julio, n??o lembro de como come??ou a thread,
mas tenho uma fun????o que devolve o pid do processo passado como par??metro.
Pode ser ??til, mas para esse caso tem que editar pra receber v??rios
par??metros (e, se for o caso, rodar um killall ou kill nos pids).

ps_get_pid(){ ps -C "$1" -o %p --no-headers;}

ps- ps do Linux, n??o sei se do BSD tem essas op????es.

Abra??os Paulo
N??o recebi o e-mail que iniciou esta thread, mas se forem s?? esses 3 processos que param, desconfio que vc
for Proc in captu ajust model
do
?? ?? ps aux | grep -q "\bromboloide-$Proc\b" || cmd que inicia $Proc
done
Se houverem mais processos, basta incluir seus nome na lista do for
Abra??os,
Julio
*?? N??o tem tempo para fazer um curso presencial?*
*?? Na sua cidade n??o tem nenhum bom curso de Linux?*
*?? O treinamento est?? muito caro?*
*
*
*Ministramos um excelente treinamento de Shell,*
*no **formato EAD. **Veja os detalhes aqui.* <http://www.dicas-l.com.br/programacao-shell-linux/>
*Damos treinamento em sua empresa **com certificado*
*e nota fiscal **por **um pre??o, **no m??nimo, 50% **abaixo*
*de qualquer curso.*
*
*
??????
Nosso time de instrutores /in company/???? formado somente por
???
???
autores
??? ???
???
de /Best Sellers
??? ???
Shell b??sico e Programa????o em ShellJulio Neves
BaculaHeitor Medrado
ZabbixAdail Host
Produ????o Gr??fica e VideografismoCadunico
__
Caro Itamar,
?? ??desculpa, n??o entendi muito bem, tenho um sistema chamado roboloide, se fa??o um pgrep roboloide ele me
mostra os seguintes processos.
?? ?? ??2634 roboloide-captu
?? ?? 2635 tee
2637 roboloide-ajust
2638 tee
2645 roboloide-model
2646 tee
2655 gunicorn
2656 tee
2657 gunicorn
2658 tee
2660 roboloide-contr
2661 tee
2694 gunicorn
2695 gunicorn
2696 gunicorn
2697 gunicorn
2698 gunicorn
2699 gunicorn
2700 gunicorn
2701 gunicorn
2703 gunicorn
2704 gunicorn
2705 gunicorn
2706 gunicorn
2707 gunicorn
2708 gunicorn
2709 gunicorn
2710 gunicorn
2711 gunicorn
2712 gunicorn
2748 node
2820 node
as vezes, os seguintes processos param
2634 roboloide-captu
2637 roboloide-ajust
2645 roboloide-model
??dai queria verificar e caso os mesmos tenham parado, chamar o servi??o novamente
__
Caro Eldimar
PID=$(pgrep processo)
E vc pode testar o retorno mesmo assim, ou a quantidade de PID retornados, por exemplo
if [ $? -eq 0 ]
then
qtde=$(echo "$PID" | wc -w)
if [ $qtde -eq 2 ]
then
echo "$(date) servi??os rodando normalmente (" $PID ")"
elif [ $qtde -gt 2 ]
then
echo "$(date) mais de 2 servi??os rodando (" $PID ")"
else
echo "$(date) um dos servi??os parado"
servico
fi
else
echo "$(date) servi??o parado, restartando servi??o"
servico
fi
?? s?? um exemplo de como poderia ver isso, mas tamb??m poderia usar array, mas eu creio ser desnecess??rio.
[]'s
Itamar
--
?? ?? ?? ?? ??Eldimar Jaconias de Souza
?? ?? ?? ?? ?? Analista ??de Suporte Pleno
?? ?? ?? Tel: (61) 9228-9214 <tel:(61)%209228-9214> / 3048-1034
"O que fazer, pra onde ir senhor se s?? tu tens as palavras de Vida Eterna"
?? ??v?? ?? ????"Software Livre: n??o ?? pelo dinheiro.
/( _ )\?? ?? ?? uma quest??o de consci??ncia."
??^?? ^
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
itamarnet@yahoo.com.br [shell-script]
2018-02-21 19:31:01 UTC
Permalink
Senhores,
o yahoo está estranho mesmo, a minha resposta foi mandada 2 vezes e às vezes também acontece de não receber algumas mensagens. Preocupante!


Caro Eldimar, no meu caso usando apenas " pgrep " o que me retorna é apenas os números PIDS, a listagem que aparece para você só apareceria para mim se eu usasse o comando " pgrep -l ".
Talvez existe um alias que redefina o formato de saída do " pgrep " no seu caso.


Mas a solução do Julio é ideal na forma, apenas usaria ao invés de " ps aux | grep " como ele adotou o " pgrep " em substituição.


Se já sabes quais os processos que travam poderia restringir a pesquisa nesses especificamente.


[]'s
Itamar
'Julio C. Neves' julio.neves@gmail.com [shell-script]
2018-02-22 12:27:22 UTC
Permalink
​Grande Itamar,
há pouco tempo encontrei um colega de lista que me disse usar somente UNIX
e que muitas das soluções que rolam na lista são implementações GNU, isto
é, só rodam no LINUX.

A partir de então, se não onerar muito a solução, tenho preferido aquelas
que atendem a gregos e baianos e, apesar de concordar contigo qto ao pgrep,
não o usei pq tenho 90% de certeza que ele não existe no ambiente UNIX
(SVr4 padrão AT&T, como o Solaris). Como há um bom tempo que não uso UNIX
pode ser engano meu...

Aquela listagem de saída do pgrep do Eldimar me leva a crer que o pgrep
dele seja "batizado". ;)


Abraços,
Julio

*» Não tem tempo para fazer um curso presencial?*
*» Na sua cidade não tem nenhum bom curso de Linux?*
*» O treinamento está muito caro?*

*Ministramos um excelente treinamento de Shell,*
*no **formato EAD. **Veja os detalhes aqui.*
<http://www.dicas-l.com.br/programacao-shell-linux/>

*Damos treinamento em sua empresa **com certificado*
*e nota fiscal **por **um preço, **no mínimo, 50% **abaixo*
*de qualquer curso.*

​​
Nosso time de instrutores *in company* é formado somente por
​
​
autores
​ ​
​
de
*Best Sellers​ ​*​laureados ​sobre os temas.. P. exemplo:

Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo Cadunico
Post by ***@yahoo.com.br [shell-script]
Senhores,
o yahoo está estranho mesmo, a minha resposta foi mandada 2 vezes e às
vezes também acontece de não receber algumas mensagens. Preocupante!
Caro Eldimar, no meu caso usando apenas " pgrep " o que me retorna é
apenas os números PIDS, a listagem que aparece para você só apareceria para
mim se eu usasse o comando " pgrep -l ".
Talvez existe um alias que redefina o formato de saída do " pgrep " no seu caso.
Mas a solução do Julio é ideal na forma, apenas usaria ao invés de " ps
aux | grep " como ele adotou o " pgrep " em substituição.
Se já sabes quais os processos que travam poderia restringir a pesquisa
nesses especificamente.
[]'s
Itamar
Eldimar Souza eldimax@gmail.com [shell-script]
2018-02-21 19:48:42 UTC
Permalink
Obrigado a todos,

Consegui resolver com a dica do Julio.

Vida longa ao linux
Post by 'Julio C. Neves' ***@gmail.com [shell-script]
Não recebi o e-mail que iniciou esta thread, mas se forem só esses 3
for Proc in captu ajust model
do
ps aux | grep -q "\bromboloide-$Proc\b" || cmd que inicia $Proc
done
Se houverem mais processos, basta incluir seus nome na lista do for
Abraços,
Julio
*» Não tem tempo para fazer um curso presencial?*
*» Na sua cidade não tem nenhum bom curso de Linux?*
*» O treinamento está muito caro?*
*Ministramos um excelente treinamento de Shell,*
*no **formato EAD. **Veja os detalhes aqui.*
<http://www.dicas-l.com.br/programacao-shell-linux/>
*Damos treinamento em sua empresa **com certificado*
*e nota fiscal **por **um preço, **no mínimo, 50% **abaixo*
*de qualquer curso.*
​​
Nosso time de instrutores *in company* é formado somente por
​
​
autores
​ ​
​
de
Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo Cadunico
Post by Eldimar Souza ***@gmail.com [shell-script]
Caro Itamar,
desculpa, não entendi muito bem, tenho um sistema chamado roboloide,
se faço um pgrep roboloide ele me mostra os seguintes processos.
2634 roboloide-captu
2635 tee
2637 roboloide-ajust
2638 tee
2645 roboloide-model
2646 tee
2655 gunicorn
2656 tee
2657 gunicorn
2658 tee
2660 roboloide-contr
2661 tee
2694 gunicorn
2695 gunicorn
2696 gunicorn
2697 gunicorn
2698 gunicorn
2699 gunicorn
2700 gunicorn
2701 gunicorn
2703 gunicorn
2704 gunicorn
2705 gunicorn
2706 gunicorn
2707 gunicorn
2708 gunicorn
2709 gunicorn
2710 gunicorn
2711 gunicorn
2712 gunicorn
2748 node
2820 node
as vezes, os seguintes processos param
2634 roboloide-captu
2637 roboloide-ajust
2645 roboloide-model
dai queria verificar e caso os mesmos tenham parado, chamar o serviço
novamente
Post by ***@yahoo.com.br [shell-script]
Caro Eldimar
porque usar a opção -fl no pgrep? Sem essa opção não precisa mais do
PID=$(pgrep processo)
E vc pode testar o retorno mesmo assim, ou a quantidade de PID retornados, por exemplo
if [ $? -eq 0 ]
then
qtde=$(echo "$PID" | wc -w)
if [ $qtde -eq 2 ]
then
echo "$(date) serviços rodando normalmente (" $PID ")"
elif [ $qtde -gt 2 ]
then
echo "$(date) mais de 2 serviços rodando (" $PID ")"
else
echo "$(date) um dos serviços parado"
servico
fi
else
echo "$(date) serviço parado, restartando serviço"
servico
fi
É só um exemplo de como poderia ver isso, mas também poderia usar array,
mas eu creio ser desnecessário.
[]'s
Itamar
--
Eldimar Jaconias de Souza
Analista de Suporte Pleno
Tel: (61) 9228-9214 / 3048-1034
"O que fazer, pra onde ir senhor se só tu tens as palavras de Vida Eterna"
ºvº "Software Livre: não é pelo dinheiro.
/( _ )\ É uma questão de consciência."
^ ^
--
Eldimar Jaconias de Souza
Analista de Suporte Pleno
Tel: (61) 9228-9214 / 3048-1034

"O que fazer, pra onde ir senhor se só tu tens as palavras de Vida Eterna"

ºvº "Software Livre: não é pelo dinheiro.
/( _ )\ É uma questão de consciência."
^ ^
Continue reading on narkive:
Loading...