Как отключить автоматическую приостановку при закрытии крышки ноутбука?

129

Я использую archlinux. Он никогда не приостанавливается автоматически перед недавним обновлением системы (может быть, я обновил ядро?).

Я думаю, что это связано с laptop-modeили acpid, поэтому я остановлю их:

/etc/rc.d/laptop-mode stop
/etc/rc.d/acpid stop

Я также редактирую /etc/laptop-mode/laptop-mode.conf:

ENABLE_LAPTOP_MODE_TOOLS=0

Затем я редактирую /etc/acpi/actions/lm_lid.sh, закомментирована последнюю строку:

# /usr/sbin/laptop_mode auto

Но все вышеперечисленное не работает. Следующие строки были найдены в /var/log/kernel.log(несвязанные строки опущены):

Oct 23 15:29:20 localhost kernel: [18617.549098] PM: Syncing filesystems ... done.
Oct 23 15:29:20 localhost kernel: [18618.001898] PM: Preparing system for mem sleep
Oct 23 15:29:30 localhost kernel: [18618.039565] Freezing user space processes ... (elapsed 0.01 seconds) done.
Oct 23 15:29:30 localhost kernel: [18618.052596] Freezing remaining freezable tasks ... (elapsed 0.01 seconds) done.
Oct 23 15:29:30 localhost kernel: [18618.065999] PM: Entering mem sleep
Oct 23 15:29:30 localhost kernel: [18618.066167] Suspending console(s) (use no_console_suspend to debug)
Oct 23 15:29:30 localhost kernel: [18618.097917] sd 0:0:0:0: [sda] Synchronizing SCSI cache
Oct 23 15:29:30 localhost kernel: [18618.098103] sd 0:0:0:0: [sda] Stopping disk
Oct 23 15:29:30 localhost kernel: [18618.270537] snd_hda_intel 0000:00:14.2: power state changed by ACPI to D3hot
Oct 23 15:29:30 localhost kernel: [18619.274374] PM: suspend of devices complete after 1196.192 msecs
Oct 23 15:29:30 localhost kernel: [18619.274691] PM: late suspend of devices complete after 0.313 msecs
Oct 23 15:29:30 localhost kernel: [18619.440877] ohci_hcd 0000:00:14.5: wake-up capability enabled by ACPI
Oct 23 15:29:30 localhost kernel: [18619.642144] ACPI: Waking up from system sleep state S3
Oct 23 15:29:30 localhost kernel: [18620.049424] PM: noirq resume of devices complete after 333.503 msecs
Oct 23 15:29:30 localhost kernel: [18620.049852] PM: early resume of devices complete after 0.334 msecs
Oct 23 15:29:30 localhost kernel: [18622.418605] PM: resume of devices complete after 2371.906 msecs
Oct 23 15:29:30 localhost kernel: [18622.419018] PM: Finishing wakeup.
Oct 23 15:29:30 localhost kernel: [18622.419019] Restarting tasks ... done.
Oct 23 15:29:30 localhost kernel: [18622.464752] video LNXVIDEO:01: Restoring backlight state

Я думаю, что это не вызвано pm-susend, потому что /var/log/pm-suspend.logничего не регистрировать.

Я не хочу, чтобы мой ноутбук ложился спать, когда я закрывал крышку. Как это сделать?

Версия ядра: 3.6.2-1-ARCH

heiz
источник
2
Я как раз собирался задать это сам, когда ваш вопрос всплыл в «Вопросах, на которые уже может быть ваш ответ». Это сделал. Благодарю.
CJM
1
В Debian 8 «Jessie» команда systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.targetотключает приостановку каждого типа.
CDuv

Ответы:

158

Отредактируйте /etc/systemd/logind.confи убедитесь, что у вас есть,

HandleLidSwitch=ignore

что заставит его игнорировать закрывающуюся крышку. (Возможно, вам также придется отменить другие изменения, которые вы сделали).

Затем вам нужно перезагрузить logind.confстраницу, чтобы изменения вступили в силу (спасибо Этешу Чоудхури за то, что он указал на это в комментариях):

systemctl restart systemd-logind

Полная информация в archlinux Wiki .

Страница man для logind.conf также содержит соответствующую информацию,

   HandlePowerKey=, HandleSuspendKey=, HandleHibernateKey=,
   HandleLidSwitch=
       Controls whether logind shall handle the system power and sleep
       keys and the lid switch to trigger actions such as system power-off
       or suspend. Can be one of ignore, poweroff, reboot, halt, kexec,
       suspend, hibernate, hybrid-sleep and lock. If ignore logind will
       never handle these keys. If lock all running sessions will be
       screen locked. Otherwise the specified action will be taken in the
       respective event. Only input devices with the power-switch udev tag
       will be watched for key/lid switch events.  HandlePowerKey=
       defaults to poweroff.  HandleSuspendKey= and HandleLidSwitch=
       default to suspend.  HandleHibernateKey= defaults to hibernate.
EightBitTony
источник
16
После изменения HandleLidSwitchкак перезагрузить logind.conf на лету? Неважно, это systemctl stop systemd-logind && systemctl start systemd-logind.
Этеш Чоудхури
11
Или, может быть systemctl restart systemd-logind, или просто systemctl reload systemd-logind? не уверен, что этого достаточно, поэтому, ожидая ответа, прежде чем пытаться закрыть мою крышку (продолжаются длительные вычисления ... (
:)
2
его больше нет в вики, и я не вижу статьи в logind.conf (если не считать небольшого раздела на этой странице).
Эхтеш Чоудхури
1
Связанная тема перенесена в Управление питанием на Arch Wiki.
день
3
systemctl restart systemd-logindвызвал мой Archlinux с зависанием рабочего стола GNOME-shell. Будь готов.
Мехди Садеги
24

Вы можете использовать это для временного отключения событий переключения крышки:

systemd-inhibit --what=handle-lid-switch sleep 1d
user3467349
источник
3
Никогда не знал, systemd-inhibitдо сих пор, очень круто
Hubro
Я думаю, что это было в arch-wiki - idk, что случилось.
user3467349 10.06.16
2
Это просто запрещает handle-lid-switchдля конкретной команды, в этом случае sleep 1d. Но он не отключает автоматическую приостановку при закрытии крышки ноутбука в целом.
CMCDragonkai
3
Я написал следующее: Вы можете использовать это для временного отключения событий переключения крышки - это чаще всего то, что я или другие люди могут захотеть. Так что я не уверен, о чем ваш комментарий?
user3467349
Значит 1d1 день? Если да, то каковы другие варианты? h, m, s? Я не могу найти ничего, явно объясняющего последнюю часть вашей команды.
Малан