O que deve funcionar de qualquer forma é matá-lo pelo seu pid:
- execute
ps -ef
(oups -efww
se as linhas forem muito longas para ler o final) - encontre o scriptname e você terá seu pid
-
mate-o com:
kill <pid>
(lembre-se: não
pkill
, que é usado comopkill <application>
, não comopkill <pid>
)
Nota:
Usando o comando:
ps -ef | grep testscript
listará dois processos; o que você está procurando e o próprio processo de pesquisa que você está executando, por exemplo:
jacob 4183 3647 0 11:22 pts/10 00:00:00 python3 /home/jacob/Bureaublad/testscript.py
jacob 4202 4189 0 11:22 pts/25 00:00:00 grep --color=auto testscript
, o que significa que você teria que usar, por exemplo:
ps -ef | grep <scriptname> | grep -v grep
> jacob 4183 3647 0 11:22 pts/10 00:00:00 python3 /home/jacob/Bureaublad/testscript.py
Para encontrar apenas a linha de que você precisa.
Ao contrário do comando pgrep
, que se filtra fora da lista, como apontado aqui ::
pgrep -f testscript
> 4183
Isso significa que usar pgrep -f <scrptname>
como sugerido por @muru é a melhor maneira, por mais de uma razão.