você está aqui: Home  → Arquivo de Mensagens

Comando pidof - descubra o número de processo de um aplicativo

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 31 de janeiro de 2013

O comando pidof permite determinar a identificação de um processo (Process ID) em execução.

Por exemplo:

  pidof bash
  7293 7165 6982 6884 5929 2942

O mais recomendável é sempre que usar este programa, fornecer o caminho completo do executável em questão, para evitar que um comando que possua o mesmo nome seja objeto de uma ação indesejada.

Este comando é bastante utilizado nos scripts de inicialização do sistema, localizados no diretório /etc/init.d. Reproduzo a seguir um trecho do script de inicialização do servidor web Apache2:

  apache_stop() {
          if $APACHE2CTL configtest > /dev/null 2>&1; then
                  # if the config is ok than we just stop normaly
                  $APACHE2CTL stop 2>&1 | grep -v 'not running' >&2 || true
          else
                  # if we are here something is broken and we need to try
                  # to exit as nice and clean as possible
                  PID=$(pidof_apache) || true

Por exemplo, se eu quiser encerrar todos os processos interativos com a shell bash, eu posso montar algo como:

  #!/bin/bash
  
  for pid in `pidof /usr/bin/bash`
  do
   kill -9 $pid
  done

Bastante radical, se for matar algum processo, use com cuidado :-)



 

 

Veja a relação completa dos artigos de Rubens Queiroz de Almeida

Opinião dos Leitores

José da silva
04 Fev 2013, 12:24
Não seria melhor usar pkill e pgrep?
Matheus de Oliveira
01 Fev 2013, 11:07
Legal a dica.

Só mais uma dica, no script de exemplo seria mais simples um kill direto:

kill -9 `pidof bash`

Ou

pidof bash | xargs kill -9

=D
Murilo Fujita
01 Fev 2013, 09:26
Com certeza será muito útil.
Em um dos meus scripts, eu verifico de tempos em termpo se determinado processo está ativo. Então no meio do bloco eu uso:

kill -9 `ps -ef | grep <nome_processo> | grep -v grep | awk '{printf "%s\n",$2}'`

Claro que tenho que saber previamente o nome do processo através do `ps -ef`. O $2 do awk pega o ID deste processo e recebe um `kill -9`.
Parabéns pela publicação.
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script