데비안 리눅스 노트북 덮개 닫기 절전 방지

데비안 리눅스 노트북의 덮개를 닫으면 systemd-logind의 전원 정책에 따라 절전 모드로 진입할 수 있다. logind.conf의 세 가지 HandleLidSwitch 항목을 ignore로 설정한 후 재부팅하면 절전 모드 진입을 막을 수 있다.

노트북에서 데비안 리눅스를 사용해 보자

데스크톱 PC와 노트북 PC의 가장 큰 차이점이라고 한다면 덮개의 유무일 것이다. 노트북에서는 덮개를 닫는 동작이 OS의 전원 정책과 연동되는 트리거 역할을 한다. 윈도우 노트북의 덮개를 닫으면 절전 모드로 들어가는 것처럼, 리눅스 노트북도 덮개가 닫히면 절전 모드로 진입하는 경우가 있다.

이러한 기능은 데비안 리눅스를 설치한 노트북을 서버로 사용하기 위해 덮개를 닫아 구석에 짱박아 두려고 할 때 문제가 된다. 절전 모드로 들어가 버리면 실행 중인 작업이 멈추고 네트워크 연결도 끊어지기 때문이다.

들고 다니는 용도라면야 다시 덮개를 열고 아무 키나 눌러 절전 모드에서 빠져나오면 되겠지만, 그 시간조차 기다리기 힘든 성격 급한 한국인이라면 덮개를 닫더라도 현재 상태를 유지하도록 설정을 변경해 주어야 한다.

리눅스 노트북의 덮개를 감지하는 systemd-logind

데비안 리눅스에서는 사용자 로그인과 세션을 제어하는 systemd-logind 데몬이 있다. 이 데몬은 세션뿐만 아니라 전원 버튼, 절전 버튼, 노트북 덮개 스위치와 같은 장치의 이벤트도 관리한다. 노트북 덮개를 열거나 닫으면 하드웨어에 설치된 스위치가 이를 감지해 이벤트를 발생시키고, systemd-logind가 현재의 전원 및 연결 상태에 따라 실행할 동작을 결정한다.

노트북 덮개와 관련된 트리거는 대략 아래의 세 가지가 있다.

HandleLidSwitch
노트북 덮개를 닫았을 때 실행할 기본 동작을 지정한다. 별도의 조건에 해당하지 않는 일반적인 상황에서 적용되는 항목이다.
HandleLidSwitchExternalPower
노트북이 외부 전원에 연결된 상태에서 덮개를 닫았을 때 실행할 동작을 지정한다. 이 항목에 값을 명시하지 않으면 외부 전원에 연결되어 있더라도 일반적인 HandleLidSwitch 설정이 적용된다.
HandleLidSwitchDocked
노트북이 도킹 스테이션에 연결되어 있거나 외부 디스플레이와 연결된 상태에서 덮개를 닫았을 때 실행할 동작을 지정한다.

각 항목에는 절전 모드로 진입하는 suspend, 최대 절전 모드로 진입하는 hibernate, 아무 동작도 하지 않는 ignore 등을 지정할 수 있다. 즉, 덮개를 닫아도 계속 데비안 리눅스를 동작시키려면 저 위의 세 항목을 모두 ignore로 만들어 주면 된다.

덮개 트리거 해제 방법

systemd-logind가 전원 버튼이나 노트북 덮개 등의 이벤트를 감지했을 때 실행할 동작은 /etc/systemd/logind.conf 파일을 통해 설정할 수 있다. 이 파일을 열어 보면 전원 관련 이벤트에 적용할 동작들이 표시되며, 그중에서 이름에 Lid가 포함된 항목들이 바로 노트북 덮개와 관련된 설정들이다. (참고로 Lid가 우리말로 덮개 되시겠다.)

debian@EQMaker:/etc/systemd$ cat logind.conf
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it under the
... (생략) ...
HandleLidSwitch=suspend
HandleLidSwitchExternalPower=suspend
HandleLidSwitchDocked=ignore
... (생략) ...
debian@EQMaker:/etc/systemd$

이 항목들의 값을 아래와 같이 ignore로 수정해 주면 덮개 관련 트리거가 모두 무시된다.

... (생략) ...
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore
... (생략) ...

logind.conf를 저장하고 시스템을 재부팅해 설정을 적용시켜 주면, 데비안 리눅스 시스템은 노트북 덮개를 닫더라도 절전 모드에 들어가지 않고 자기 할 일을 계속하게 된다.

데비안 리눅스 시스템의 전원 정책과 절전 모드 설정에 관한 자세한 내용은 다음 문서를 참고하기 바란다.

FAQ

리눅스 노트북의 덮개 닫기 이벤트를 관리하는 데몬은 무엇인가?
데비안 리눅스에서는 systemd-logind 데몬이 노트북 덮개 스위치에서 발생하는 이벤트를 처리한다. 이 데몬은 현재의 전원과 장치 연결 상태를 확인하고, logind.conf에 설정된 값에 따라 절전 모드 진입 등의 동작을 실행한다.
리눅스 노트북의 덮개를 닫아도 절전 모드로 들어가지 않게 하려면 어떻게 해야 하는가?
/etc/systemd/logind.conf 파일의 [Login] 항목에서 HandleLidSwitch, HandleLidSwitchExternalPower, HandleLidSwitchDocked의 값을 모두 ignore로 지정한다. 파일을 저장한 다음 시스템을 재부팅하면 덮개를 닫더라도 절전 모드로 진입하지 않는다.
HandleLidSwitch, HandleLidSwitchExternalPower, HandleLidSwitchDocked의 차이는 무엇인가?
HandleLidSwitch는 일반적인 상태에서 덮개를 닫았을 때 실행할 기본 동작을 지정한다. HandleLidSwitchExternalPower는 외부 전원이 연결된 상태에 적용되며, HandleLidSwitchDocked는 도킹 스테이션이나 외부 디스플레이가 연결된 상태에 적용된다.
HandleLidSwitch 설정을 삭제하거나 주석 처리해도 덮개 닫기 동작이 무시되는가?
그렇지 않다. 설정을 삭제하거나 줄 앞에 #을 붙여 주석 처리하면 ignore가 적용되는 것이 아니라 시스템의 기본값이 사용된다. HandleLidSwitch의 기본값은 suspend이므로, 덮개 닫기 동작을 확실하게 무시하려면 HandleLidSwitch=ignore와 같이 값을 직접 지정해야 한다.
logind.conf에서 설정할 수 있는 전원 관리 이벤트에는 어떤 것이 있는가?
logind.conf에서는 노트북 덮개뿐만 아니라 전원 버튼, 재부팅 버튼, 절전 버튼 및 최대 절전 버튼에서 발생한 이벤트의 처리 방법도 설정할 수 있다. 대표적인 항목으로 HandlePowerKey, HandleRebootKey, HandleSuspendKey, HandleHibernateKey와 각 버튼을 길게 눌렀을 때 적용되는 항목이 있다.
logind.conf를 수정하면 모든 절전 모드 진입이 차단되는가?
아니다. HandleLidSwitch 계열의 값을 ignore로 지정하면 노트북 덮개를 닫아서 발생하는 동작만 무시된다. 사용자가 직접 절전 명령을 실행하거나 유휴 시간, 전원 버튼 및 데스크톱 환경의 전원 정책에 의해 절전 모드로 진입하는 것까지 차단하는 설정은 아니다.
logind.conf를 수정한 후 설정을 적용하는 방법은?
가장 확실한 방법은 파일을 저장한 다음 sudo reboot를 실행해 시스템을 재부팅하는 것이다. systemd-logind 서비스만 재시작하는 방법도 있지만 현재 로그인 세션에 영향을 줄 수 있으므로, 원격으로 작업하고 있다면 재부팅하는 편이 안전하다.
HandleLidSwitch를 ignore로 설정했는데도 노트북이 절전 모드로 들어가는 이유는?
그래픽 데스크톱 환경의 전원 관리 프로그램이 덮개 스위치 이벤트를 직접 처리하고 있을 수 있다. 이 경우에는 systemd-logindHandleLidSwitch 설정이 적용되지 않을 수 있으므로, 데스크톱 환경의 전원 관리 설정에서도 덮개를 닫을 때 실행할 동작을 확인해야 한다.

갱신 내역

  1. 최초 게시
  2. 수정 및 주소 이전 (https://www.EQMaker.kr/)