Como listar e matar processos pelo nome (e não pelo PID)
É comum quando estamos trabalhando em um console linux e precisamos matar algum processo, executar um # ps aux | grep [PROGRAMA], pegar o PID e executar um # kill [PID] (ou kill -9 [PID]). Pois bem, se você ainda não conhece, deixe me falar (escrever) que é possível listar e matar os processos, utilizando para isso o próprio nome do processo. Para isso existem dois comandos encarregados desta tarefa, são eles o pgrep e o pkill.
O pgrep é responsável por pegar os processos em execução e listar seus IDs (PIDs), para isso o critério de seleção deverá ser completamente satisfeito. Por exemplo:
# pgrep httpd
Listará todos os PIDs de processos que tenham o nome httpd
Também é possível passar alguns parâmetros, como o -u que relaciona processos cujo o UID é efetivamente listado.
O pkill, por sua vez, enviará o respectivo sinal para cada processo que for listado (por padrão o SIGTERM) conforme o critério de seleção utilizado. Por exemplo:
# pkill -HUP syslogd
Fará com que o syslogd re-leia o arquivo de configuração.
Para maiores informações, consulte a página de manual destes comandos.
Flávio Theruo Kaminisse:
Muito legal este post.
Eu não conhecia estes comandos, utilizava o ps e kill…
Estão devidamente armazenados, depois vou dar uma olhada no man de cada um para conhecer melhor e aproveitar todas as funcionalidades destes novos comando.
Parabéns
25 Novembro 2005, 7:37 am