Eu geralmente usaria um comando como kill
sobre a leitura de conteúdo diretamente de /proc
. A vantagem é que uma ferramenta como kill
retornará códigos de status (pense em $?
) se foi bem-sucedida ou não e, em tese, já deve ter alguma coisa relacionada à API incluída, quando estiver lidando com /proc
content vs rolando você mesmo.
Além disso, o uso de comandos dedicados permite uma melhor portabilidade do seu código nos vários Unixes. /proc
não é onipresente em outros Unixes, como Solaris e AIX.
Exemplos
Processo de teste para matar.
$ sleep 10 &
[1] 11639
Agora nós matamos isso.
$ kill 11639
[1]+ Terminated sleep 10
Fomos bem sucedidos?
$ echo $?
0
Um zero significa que fomos bem sucedidos. Qualquer outra coisa, nós poderíamos lidar com isso de maneiras diferentes. Com a leitura do /proc
diretamente, somos deixados em um dilema.
Mesma situação, estamos tentando matar um processo inexistente.
$ kill 61234
bash: kill: (61234) - No such process
Recebemos feedback sobre isso.
$ echo $?
1
O que mais?
Você também pode querer investigar usando pkill
e pgrep
também se preferir matar ou procurar um processo pelo nome, em vez de $pid
. Mas isso depende basicamente do que você está tentando fazer.