Pegar o PID do processo e guardar em arquivo [RESOLVIDO]

1. Pegar o PID do processo e guardar em arquivo [RESOLVIDO]

Orlando
orlandoPereira

(usa Outra)

Enviado em 05/05/2014 - 15:31h

Eai pessoal,

Alguém ai consegue me ajudar estou com uma duvida.

Preciso criar um script que reinicie uma aplicação X e que depois envie seu PID para uma arquivo, para mais tarde eu poder reiniciar ele novamente sem duplicar.

Por isso tenho que guardar esse PID para quando reiniciar ele, pare a aplicação e inicie novamente.

Alguém tem alguma ideia ai já pesquisei bastante mais nada me ajudou até agora.

Valeu a todos..


  


2. Re: Pegar o PID do processo e guardar em arquivo [RESOLVIDO]

William Amaral de Souza
williamm

(usa Linux Mint)

Enviado em 05/05/2014 - 15:46h

Boa tarde, acho que da para tirar algo daqui.
http://vivaolinux.com.br/artigo/Gerenciando-Processos-com-o-Shell/


3. Re: Pegar o PID do processo e guardar em arquivo [RESOLVIDO]

Fernando
phoemur

(usa Debian)

Enviado em 05/05/2014 - 18:43h

Pesquise por "PID lock" no google...

O seu diretório /var/run está cheio de arquivos com extensão .pid que os programas usam pra fazer exatamente isso que você quer...

Sugestão:
http://stackoverflow.com/questions/1440967/how-do-i-make-sure-my-bash-script-isnt-already-running
http://wiki.bash-hackers.org/howto/mutex

para saber seu pid você pode usar a variável $$ que contém o próprio PID do executante


# echo $$
2171





4. Re: Pegar o PID do processo e guardar em arquivo [RESOLVIDO]

Orlando
orlandoPereira

(usa Outra)

Enviado em 06/05/2014 - 11:07h

Pessoal consegui fazer usando esse script que tive que fazer algumas alterações.

No teste que fiz com o navegador ele esta desta forma abaixo, então se eu pegar o primeiro PID posso finalizar, que todos os outro também terminam sua execução.


|-chrome-+-chrome
| |-chrome-+-chrome
| | `-2*[{chrome}]
| |-chrome---4*[{chrome}]
| |-chrome-sandbox---chrome-+-chrome-+-5*[chrome---5*[{chrome}]]
| | | `-chrome---8*[{chrome}]
| `-35*[{chrome}]

pegarPid.sh
############Script##########
#!/bin/sh
. ~/.profile


# Comando para pegar o PID pelo nome do processo
# comando sed usado para pegar somente a primeira linha, no caso do Chrome ele tem mais de um PID que são subPIDs ligados a um principal
PID=$(ps -eo pid,comm | awk '$2 == "chrome" {print $1 }' | sed -n '1p' )

echo $PID >> chrome.pid


if [ -z "$PID" ]; then
echo "... not running"
else
echo "... running"
fi
##########fim#########


Agora só preciso criar uma maneira de fazer algo desse tipo processo.sh restart/stop/start/status para poder verificar esse processo se esta ok e reiniciar


valeu a todos..






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts