O que deve funcionar de qualquer forma é matá-lo pelo seu pid:
- execute
ps -ef(oups -efwwse 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.