Uma nova versão do logstash que estou usando não pode parar, tentando se conectar ao Elastic o tempo todo, enquanto não pode (um problema de autenticação, resolverei mais tarde).
a sudo systemctl stop logstash.service
não é suficiente para pará-lo, então emiti um arquivo sudo systemctl kill logstash.service
.
Mas também não o impede.
um sudo system status logstash.service
exibe:
lebihan@debian:~$ sudo systemctl kill logstash.service
lebihan@debian:~$ sudo systemctl status logstash.service
● logstash.service - logstash
Loaded: loaded (/lib/systemd/system/logstash.service; disabled; preset: enabled)
Active: deactivating (stop-sigterm) since Sun 2023-08-20 07:51:21 CEST; 1h 4min ago
Main PID: 47926 (java)
Tasks: 176 (limit: 76997)
Memory: 1.6G
CPU: 28min 605ms
CGroup: /system.slice/logstash.service
└─47926 /usr/share/logstash/jdk/bin/java -Xms1g -Xmx1g -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djruby.compile.invokedynamic=true -XX:+HeapDumpOnOutOfMemoryError -Djava.security.eg>
août 20 08:55:36 debian logstash[47926]: [2023-08-20T08:55:36,702][WARN ][logstash.outputs.elasticsearch][main] Attempted to resurrect connection to dead ES instance, but got an error {:url=>"http://l>
août 20 08:55:41 debian logstash[47926]: [2023-08-20T08:55:41,704][WARN ][logstash.outputs.elasticsearch][main] Attempted to resurrect connection to dead ES instance, but got an error {:url=>"http://l>
août 20 08:55:42 debian systemd[1]: logstash.service: Sent signal SIGTERM to main process 47926 (java) on client request.
août 20 08:55:42 debian logstash[47926]: [2023-08-20T08:55:42,326][WARN ][logstash.runner ] SIGTERM received. Shutting down.
août 20 08:55:46 debian logstash[47926]: [2023-08-20T08:55:46,706][WARN ][logstash.outputs.elasticsearch][main] Attempted to resurrect connection to dead ES instance, but got an error {:url=>"ht
Por que não estou systemctl kill
enviando um evento SIGKILL, em vez de um SIGTERM?
E como envio um SIGKILL ao meu serviço para forçá-lo a parar, com systemctl
?
A documentação sobre
systemctl kill
nunca informa que enviará umSIGKILL
por padrão:Salvo indicação em contrário,
systemctl kill
usará o sinal definido no serviço.Para realmente enviar um
SIGKILL
para o serviço someservice deve-se fazer:Detalhes adicionais podem ser encontrados neste Q/A .