@jjlin answer pode funcionar.
Mas para explicar o funcionamento de pgrep/pkill
e killall
:
killall procura apenas por nomes de processos - essa é a parte vista em /proc/<pid>/comm
O pgrep / pkill faz por padrão o mesmo, mas também pode procurar por uma correspondência nos argumentos (-f), o que faz com que corresponda novamente a /proc/<pid>/cmdline
Basicamente, por padrão, apenas strings vistas em ps -A
são consideradas.
exemplo:
process name (comm): sshd
full command/arguments (cmdline): /usr/sbin/sshd -f /etc/ssh/sshd_config
agora - kilall/pkil sshd
funcionaria (erros de digitação intencionais, não faça isso;)
mas killall /usr/sbin/sshd
NÃO funcionará porque o caminho não faz parte do nome do processo
você pode verificar com pgrep -lf sshd_config
(ou seja, pkill -f)
Então, aqui estão outras coisas a considerar. Killall
pode estar correspondendo apenas aos primeiros 15 bytes de um nome de comando (consulte killall -e
), se expressões regulares são necessárias ou se você deseja aproveitar grupos de processos, etc.
nota: os arquivos / proc / ... são delimitados por nulo, portanto cuidado durante a cópia / colagem