我希望使用“sytemctlkilllogstash.service”来终止服务,但服务收到的是 SIGTERM,而不是 SIGKILL。如何发送 SIGKILL?

我希望使用“sytemctlkilllogstash.service”来终止服务,但服务收到的是 SIGTERM,而不是 SIGKILL。如何发送 SIGKILL?

一个新的日志存储我正在使用的版本无法停止,正在尝试连接松紧带一直,虽然不能(身份验证问题,我稍后会解决)。

asudo systemctl stop logstash.service不足以阻止它,因此我发出了一个sudo systemctl kill logstash.service

但这也无法阻止它。

显示sudo system status logstash.service

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

为什么我不systemctl kill发送 SIGKILL 事件,而是发送 SIGTERM 事件?
如何使用 向我的服务发送 SIGKILL 以强制其停止systemctl

答案1

有关的文档systemctl kill从不告诉它SIGKILL默认会发送:

kill图案…

向单元的一个或多个进程发送 UNIX 进程信号。用于 --kill-whom=选择向哪个进程发送信号。用于 --signal=选择要发送的信号。与 结合 --kill-value=使用,将 POSIX 实时信号与关联值排入队列。

除非另有说明,否则systemctl kill将使用服务中定义的信号。

SIGKILL要实际向服务发送一些服务人们应该这样做:

systemctl kill --signal=SIGKILL someservice

其他详细信息可以在以下位置找到:这个问答

相关内容