![我希望使用“sytemctlkilllogstash.service”来终止服务,但服务收到的是 SIGTERM,而不是 SIGKILL。如何发送 SIGKILL?](https://linux22.com/image/223622/%E6%88%91%E5%B8%8C%E6%9C%9B%E4%BD%BF%E7%94%A8%E2%80%9Csytemctlkilllogstash.service%E2%80%9D%E6%9D%A5%E7%BB%88%E6%AD%A2%E6%9C%8D%E5%8A%A1%EF%BC%8C%E4%BD%86%E6%9C%8D%E5%8A%A1%E6%94%B6%E5%88%B0%E7%9A%84%E6%98%AF%20SIGTERM%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AF%20SIGKILL%E3%80%82%E5%A6%82%E4%BD%95%E5%8F%91%E9%80%81%20SIGKILL%EF%BC%9F.png)
一个新的日志存储我正在使用的版本无法停止,正在尝试连接松紧带一直,虽然不能(身份验证问题,我稍后会解决)。
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
其他详细信息可以在以下位置找到:这个问答。