Liste todos os processos em execução no vlc:
debian@debian:~$ ps aux |grep vl[c]
debian 14482 0.1 2.2 2882968 136428 ? Sl 10:19 0:02 vlc -I telnet --telnet-host 192.168.31.167 --telnet-port 4212 --telnet-password admin
debian 15174 0.2 2.4 2881576 145368 ? Ssl 10:32 0:03 vlc -d -I telnet --telnet-host 192.168.31.167 --telnet-port 4212 --telnet-password admin
debian 15641 0.3 2.4 2896668 146380 ? SLsl 10:42 0:01 vlc -d -I telnet --telnet-host 192.168.31.167 --telnet-port 4212 --telnet-password admin
Mate todos:
debian@debian:~$ sudo kill 14482
debian@debian:~$ sudo kill 15174
debian@debian:~$ sudo kill 15641
Lista novamente:
debian@debian:~$ ps aux |grep vl[c]
debian 14482 0.1 2.2 2882968 136428 ? Sl 10:19 0:02 vlc -I telnet --telnet-host 192.168.31.167 --telnet-port 4212 --telnet-password admin
debian 15174 0.2 2.4 2881576 145368 ? Ssl 10:32 0:03 vlc -d -I telnet --telnet-host 192.168.31.167 --telnet-port 4212 --telnet-password admin
debian 15641 0.3 2.4 2896668 146380 ? SLsl 10:42 0:01 vlc -d -I telnet --telnet-host 192.168.31.167 --telnet-port 4212 --telnet-password admin
Por que o processo ainda pode ser listado depois de matá-los?
Confira
man kill
:No topo está escrito: "enviar um sinal para um processo". Isso não significa que o processo será encerrado, apenas que um sinal será enviado a ele.
O sinal padrão é
SIGTERM
. Segundoman signal.7
,SIGTERM
é capturável. Isso significa que o programa recebe uma solicitação para parar, então o programa tem a oportunidade de fazer algo a respeito. Se for um banco de dados, talvez salve antes de parar.Se o programa não manipular
SIGTERM
, ou optar por fazer algo diferente de parar, você obterá o comportamento que vê.Existem outros sinais que você pode tentar enviar.
SIGINT
(2) é a mesma coisa que você envia ao usar CTRL+C no terminal. Um comum, e provavelmente o que você deseja, éSIGKILL
(9).SIGKILL
é um dos poucos sinais que não será propagado para o processo. Em vez disso, é um sinal para o kernel, pedindo-lhe para encerrar o processo. Nesse caso, não importa se o processo está codificado para manipularSIGTERM
, ele será interrompido pelo kernel sem ser notificado. A desvantagem é que se ele precisar salvar seu trabalho ou notificar os pares de que está sendo encerrado, não terá essa oportunidade. O uso é assim:man signal.7
tem mais detalhes. Se a sua máquina não for igual à minha, use a página de manual da sua máquina para referência.