"sytemctlkilllogstash.service"를 사용하여 서비스를 종료할 것으로 예상했지만 서비스가 SIGKILL 대신 SIGTERM을 받았습니다. SIGKILL을 보내는 방법?

"sytemctlkilllogstash.service"를 사용하여 서비스를 종료할 것으로 예상했지만 서비스가 SIGKILL 대신 SIGTERM을 받았습니다. SIGKILL을 보내는 방법?

새로운 것로그 저장연결을 시도하는 동안 사용 중인 버전을 중지할 수 없습니다.고무 밴드항상 그럴 수는 없지만(인증 문제는 나중에 다루겠습니다).

a 는 sudo 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

SIGKILL 이벤트는 보내지 systemctl kill않고 SIGTERM 이벤트는 보내는 이유는 무엇입니까?
내 서비스가 SIGKILL 사용을 강제로 중지하려면 어떻게 해야 합니까 systemctl?

답변1

이것관련된 문서systemctl killSIGKILL기본적으로 보내도록 지시하지 마십시오 .

kill무늬…

장치에 있는 하나 이상의 프로세스에 UNIX 프로세스 신호를 보냅니다. --kill-whom=신호를 보낼 프로세스를 선택하는 데 사용됩니다 .--signal=전송할 신호를 선택하는 데 사용됩니다. . 와 함께 사용되며 --kill-value=관련 값과 함께 POSIX 실시간 신호를 대기열에 넣습니다.

달리 명시하지 않는 한 systemctl kill서비스에 정의된 신호가 사용됩니다.

SIGKILL실제로 서비스에 보내려면일부 서비스사람들은 이렇게 해야 합니다:

systemctl kill --signal=SIGKILL someservice

추가 세부정보는 다음에서 확인할 수 있습니다.이 Q&A.

관련 정보