Quando você digita Ctrl + c , isso normalmente envia ao processo um sinal "INT". De signal(7)
:
Signal Value Action Comment ────────────────────────────────────────────────────────────────────── ... SIGINT 2 Term Interrupt from keyboard
É comum que processos instalem um manipulador para este sinal, permitindo que eles executem alguma limpeza antes de sair. No caso do seu script led.py
, parece que esse manipulador desligou os LEDs.
Por padrão, pkill
e kill
enviam o sinal "TERM" (15). (Você também tentou enviar "KILL" (9).) Esses sinais fizeram com que led.py
morresse com menos graça, sem ter a chance de executar sua função de finalização.
Para permitir que led.py
seja concluído corretamente, envie o sinal "INT" (2), com
pkill -2 [process specifier]
O comando pkill
no seu crontab
também pode não ter encontrado o processo, porque o nome que você deu não era o que estava procurando. De pkill(1)
:
-f, --full
The pattern is normally only matched against the process name. When -f is set, the full command line is used.
Como seu script, led.py
, era presumivelmente um script python, o nome do processo era simplesmente python
(ou python3
ou similar). A linha de comando completa seria algo como python led.py
, então as opções -f
permitem que você combine isso.
pkill -2 -f led.py