Archive for 24th Novembro 2005

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.