Lord Beni-Aretz
(usa Red Hat)
Enviado em 23/08/2016 - 10:59h
lord beni-aretz escreveu:
kyetoy escreveu:
Observe que não tem muita utilidade "guardar" o PID do último programa executado... e por outro lado pode até ser perigoso usar essa informação para tomar uma decisão...
Após terminar a execução um PID é liberado e NADA impede que ele seja utilizado IMEDIATAMENTE por outro processo... então qualquer ação sobre esse PID pode afetar um outro programa...
Então porque guardar o PID de background na variável?
Supõe-se que tarejas em background demorem para terminar... isso pode ser uma razão aceitável?!!! rs...ou não?!
O meu interesse em quardar o último PID gerado é para colocar em um Scrip que irá start o "Tomcat" e guardar o seu PID em uma variável. Assim posteriormente poderia matar o "Tomcat" com o comando kill "variavelPID".
Apenas para completar esse tópico.
Resolvi da seguinte forma:
Criei uma variável e destinei a ela um sub shell pra filtrar o processo pelo grep e awk. Assim:
PID_TOMCAT="$(/usr/bin/ps aux | grep tomcat7 | grep -v grep | awk '{ print $2}')" 2>&1&> /dev/null
Assim eu filtrei pelo serviço Tomcat7, fiz com que ele não trouxesse o resultado do grep com "grep -v grep", filtrei pela pela segunda coluna para obter o PID com awk e joguei da saida e o erro para /dev/null.
Na verdade em meu scrip coloquei isso em uma function, que é executada logo após iniciar o serviço do Tomcat
function PEGA_PID_TOMCAT () {
PID_TOMCAT="$(/usr/bin/ps aux | grep tomcat7 | grep -v grep | awk '{ print $2}')" 2>&1&> /dev/null
}
Sendo que sempre que precisar matar o serviço do Tomcat, poderei usar o kill -9 $PID_TOMCAT
Em outra situação já fiz algo semelhante, mas direto, um scrip que chama a function MataTomcat, sendo que esta função faz pega o PID conforme acima e já executa o kill.
ai fica mais fácil. Sendo necessário apenas chamar a function Mata_WebLogic
:)