어제 Haproxy 구성을 변경해야 했는데 systemctl을 사용하여 다시 시작할 수 없다는 것을 알았습니다. 수동으로 시작해야 합니다.
오늘 Docker를 다시 시작해야 했는데 같은 일이 일어났습니다.
journalctl -xe
후에 systemctl restart haproxy
:
-- Unit haproxy.service has begun starting up.
Aug 06 11:19:30 ns3038251 systemd[1]: haproxy.service: Control process exited, code=dumped status=7
Aug 06 11:19:30 ns3038251 systemd[1]: haproxy.service: Failed with result 'core-dump'.
Aug 06 11:19:30 ns3038251 systemd[1]: Failed to start HAProxy Load Balancer.
-- Subject: Unit haproxy.service has failed
도커의 경우:
-- The start-up result is RESULT.
Aug 06 11:19:08 ns3038251 systemd[1]: containerd.service: Main process exited, code=dumped, status=7/BUS
Aug 06 11:19:08 ns3038251 systemd[1]: containerd.service: Failed with result 'core-dump'.
콘솔에서 실행하면 둘 다 작동하기 haproxy
때문에 구성 파일 문제가 아니라는 것을 알고 있습니다.containerd
dockerd
문제는 인터넷이 많은 정보를 제공하지 않고 디버깅을 시도할 수 있는 것이 무엇인지 모른다는 것입니다. 이는 원격 서버에 있으며 부팅 시 전혀 시작되지 않는 경우 재부팅하고 싶지 않습니다. . 그런데 최근에는 업데이트 등 아무것도 하지 않았습니다.
나에게 줄 수 있는 어떤 조언이라도 감사드립니다.
편집하다:질문을 올린 이후로 바빠서 몇 분 전에 다시 서버에 로그인했습니다. 그 이후로 아무것도 안했는데 똑같은 tmux
창으로 돌아왔네요.
지금 은 systemctl restart haproxy
문제 가 없습니다 systemctl restart docker
. 여기서 무슨 일이 일어나는지 이해가 안 돼요...
답변1
실행 중인 프로세스를 가져온 ps aux | grep 'haproxy'
다음 프로세스를 가져온 PID
다음 를 사용하여 종료합니다 kill -9 PID
. 그런 다음 다시 시작해 보세요.
답변2
systemctl이 시작할 수 없는 경우 다음 중 하나일 가능성이 높습니다.
- Systemctl은 오래된 PID 파일이나 잘못 작성된 시작 스크립트로 인해 실행 중이라고 생각합니다. Systemctl은 하나의 복사본만 실행하도록 구성된 항목의 두 복사본을 실행하지 않습니다.
- Systemctl의 새로운 보안 기능으로 인해 유효한 시작 스크립트가 실패할 수 있습니다. 최근(작년) 많은 공급업체가 systemctl에 심볼릭 링크 보호를 추가했으며 일부 파일에 심볼릭 링크를 만들면 systemctl이 심볼릭 링크를 따르지 않습니다. 이상하게 들릴 수도 있지만 이는 시스템이 "심볼릭 링크 하이재킹"되는 것을 방지합니다.
- su 또는 sudo를 사용하여 서비스를 시작할 수 있습니다. 이 방법은 이전에는 작동했지만 보안 문제도 발생하므로 많은 Linux 공급업체에서는 사용자 전송 프로그램으로 "runas"를 선호하도록 systemctl을 변경했습니다. Runas는 su 또는 sudo가 허용하는 공격에 취약하지 않습니다.
물론 완전히 다른 것일 수도 있습니다. 그러나 서비스 파일, pid 파일 또는 서비스 파일에 의해 시작된 exec 스크립트에 이러한 항목이 있는 경우 소프트웨어를 업데이트하여 이전에 작동하던 서비스에 이제 문제가 있음을 발견했을 수 있습니다. 이는 이전에 작동하던 서비스가 이상적이지 않은 방식으로 시작되도록 구성되어 구성을 업데이트해야 하기 때문일 수 있습니다.
답변3
무엇을 디버깅하려고 할 수 있는지 모르겠습니다.
로그에 따르면 어딘가에 코어 덤프가 있다고 나와 있습니다. 다른 사람들이 다른 곳에서 했던 것처럼 그들을 찾아서 그들이 당신에게 말하는 것을 보십시오.
필요한 경우 프로그램 담당자에게 문의하고, 코어 덤프의 내용을 이해할 수 없는 경우 해당 지원 담당자에게 문의하세요. 최소한 디버거의 출력이 있습니다(코어 덤프에 대해 실행).systemctl show unitname
bt
손에. 서비스 관리를 구성한 방법과 컴퓨터가 수행하는 작업을 알려주지 않으면 텔레파시를 사용할 수 없으며 서비스 장치 구성 파일과 관련된 내용이나 프로그램에서 볼 수 있는 위치를 알 수 없습니다.
추가 읽기
- 유바리 (2019-06-24). haproxy 2.0.0 스냅샷 3f0b1d-9가 SIGBUS(신호 10)에서 종료(충돌?). Haproxy 문제 #137.
- 자이푸르츠 (2019-07-12). __pool_get_from_cache()의 SIGBUS. Haproxy 문제 #166.
coredumpctl
. 시스템 매뉴얼 페이지. freedesktop.org.- 조나단 데보인 폴라드(2003).문제 보고서를 제출할 때 표준 긴 설명을 따르십시오. . 일반적인 답변.