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.