본문 바로가기

리눅스

systemd-logind Power Key 이벤트로 인한 서버 비정상 종료 분석 및 해결 방법

반응형

systemd-logind Power Key 이벤트로 인한 서버 비정상 종료 분석 및 해결 방법

운영 중인 서버가 관리자 작업이나 물리적인 전원 버튼 조작 없이 종료되는 현상이 발생했다.

로그 확인 결과 systemd-logind에서 Power Key 이벤트를 감지한 이후 시스템 종료 동작이 수행된 것을 확인했다.

테스트 환경

하드웨어 모델

$ dmidecode -t system | grep "Product Name"
	Product Name: ProLiant DL360 Gen9

운영체제 정보

$ lsb_release -d
Description:	Ubuntu 24.04.1 LTS

장애 로그 확인

cat /var/log/auth.log | grep systemd-logind
Jun  3 01:49:32 testServer-24 systemd-logind[1275]: Power key pressed.
Jun  3 01:49:32 testServer-24 systemd-logind[1275]: Powering Off...
Jun  3 01:49:32 testServer-24 systemd-logind[1275]: System is powering down.

로그 흐름

로그 흐름

운영체제는 전원 버튼 입력 이벤트를 정상적으로 수신했고 systemd-logind 설정에 따라 시스템 종료(poweroff)를 수행한 상황이다.

systemd-logind 전원 버튼 처리 설정 확인

systemd-logind는 전원 버튼, 절전 버튼, 덮개 닫힘 등의 하드웨어 이벤트를 관리한다.

 

설정 파일

/etc/systemd/logind.conf

현재 설정 확인

grep -E "^#?HandlePowerKey" /etc/systemd/logind.conf
HandlePowerKey=poweroff
HandlePowerKeyLongPress=ignore

설정 의미

  • HandlePowerKey=poweroff : 전원 버튼을 짧게 누르면 systemd-logind가 정상 종료 절차를 수행한다.
  • HandlePowerKeyLongPress=ignore : 전원 버튼을 길게 눌렀을 때 systemd-logind 레벨에서는 별도의 동작을 수행하지 않는다.
728x90

해결 방법

운영 서버에서는 실수로 Power Key가 입력되어 시스템이 종료되는 상황을 방지하기 위해 Power Key 동작을 무시하도록 변경한다.

 

1. 기존 설정 확인

grep -E "^#?HandlePowerKey" /etc/systemd/logind.conf
#HandlePowerKey=poweroff
#HandlePowerKeyLongPress=ignore

2. 설정 변경

sudo sed -i.bak 's/^#\?\s*\(HandlePowerKey=\).*/\1ignore/' /etc/systemd/logind.conf

3. 설정 확인

grep -E "^#?HandlePowerKey" /etc/systemd/logind.conf
HandlePowerKey=ignore

4. systemd-logind 재시작

sudo systemctl restart systemd-logind

5. 적용 확인

loginctl show-session | grep HandlePowerKey
HandlePowerKey=ignore
HandlePowerKeyLongPress=ignore

물리 전원 버튼 강제 종료와의 차이

랙 서버 전면의 물리 전원 버튼을 4~5초 이상 길게 누르는 동작은 systemd-logind 설정과 관계없이 동작한다.

이 방식은 서버 메인보드의 전원 관리 기능(ACPI 기반 전원 제어)을 통해 하드웨어 레벨에서 강제 종료 명령이 수행된다.

 

운영 서버에서는 의도하지 않은 Power Key 입력으로 인한 장애를 예방하기 위해 HandlePowerKey=ignore 설정을 검토할 수 있다.

 

728x90
반응형