Hoje precisei criar um script no Linux que matasse um processo pelo nome, e não pelo número. Resolvi compartilhar aqui no blog:
#!/bin/bash # Autor: Tiago Passos SHELL=/bin/sh PATH=/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin #SCRIPT QUE MATA (PELO NOME) O PROGRAMA ESPECIFICADO #INFORME O NOME (OU TRECHO DO NOME) DO PROGRAMA QUE VOCE QUER MATAR programa=nano #NUMERO DO PROCESSO DO PROGRAMA processo=$(ps -ef | grep $programa | grep -v grep | awk '{print $2}') kill $processo >> /var/log/killpelonome
Também é possível usar o pgrep nessa lógica, e ficaria até mais limpo, mas pro meu caso específico não deu pra usar. Isso porque estava querendo matar (inicialmente) um programa executado pelo java, e precisaria idenficar esse programa pelos parâmetros que estavam sendo passados.
O pgrep (até onde sei) não identifica os parâmetros, mas apenas o nome, então não funcionaria em todas as situações.
Últimos comentários