168

I'm using archlinux. It never auto-suspend before a recent system upgrade(maybe I updated the kernel?).

I think it is related to laptop-mode or acpid, so I stop them:

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

I also edit /etc/laptop-mode/laptop-mode.conf:

ENABLE_LAPTOP_MODE_TOOLS=0

Then I edit /etc/acpi/actions/lm_lid.sh, commented out the last line:

# /usr/sbin/laptop_mode auto

But all of above don't work. Following lines were found in /var/log/kernel.log(unrelated lines omitted):

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

I think this is not caused by pm-susend, because /var/log/pm-suspend.log don't log anything.

I don't want my laptop go to sleep when I close the lid. How to do it?

Kernel version: 3.6.2-1-ARCH

2
  • 2
    I was just about to ask this myself when your question popped up in "Questions that may already have your answer." It did. Thanks.
    – cjm
    Commented Nov 11, 2012 at 1:04
  • 1
    On Debian 8 "Jessie" the command systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target disables every type suspension.
    – CDuv
    Commented Oct 17, 2015 at 21:39

2 Answers 2

207

Edit /etc/systemd/logind.conf and make sure you have

HandleLidSwitch=ignore

which will make it ignore the lid being closed. (You may need to also undo the other changes you've made.)

Then, you'll want to reload logind.conf to make your changes go into effect (thanks to Ehtesh Choudhury for pointing this out in the comments):

systemctl restart systemd-logind

Full details over at the archlinux Wiki.

The man page for logind.conf also has the relevant information,

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".

15
  • 17
    After changing HandleLidSwitch, how do I reload logind.conf on the fly? Nevermind, it's systemctl stop systemd-logind && systemctl start systemd-logind. Commented Jul 4, 2013 at 7:08
  • 13
    Or maybe systemctl restart systemd-logind, or even just systemctl reload systemd-logind? not sure it's enough, thus, looking forward for a reply before trying to close my lid (long computation in progress... (: ). Also, isn't there an userspace tool that can manage such acpi features?
    – cblab
    Commented Aug 1, 2013 at 12:29
  • 2
    it's definitely not on the wiki anymore, and I don't see a logind.conf article (short of the small section on that page). Commented Dec 9, 2013 at 21:26
  • 2
    The related topic is moved to Power management on Arch Wiki.
    – day
    Commented Apr 1, 2014 at 20:08
  • 9
    systemctl restart systemd-logind caused my Archlinux with GNOME-shell desktop freeze. Be prepared.
    – mehdix
    Commented Nov 14, 2016 at 13:25
49

You can use this to temporarily disable lid-switch events:

systemd-inhibit --what=handle-lid-switch sleep 1d
6
  • 7
    Never knew of systemd-inhibit before now, very cool
    – Hubro
    Commented Jun 10, 2016 at 10:34
  • I think it used to be in the arch-wiki -- idk what happened. Commented Jun 10, 2016 at 12:31
  • 4
    What I wrote was You can use this to temporarily disable lid-switch events -- which is most commonly what I or other people may want. So I'm not sure what your comment is about? Commented Jul 9, 2016 at 0:09
  • 2
    Does 1d mean 1 day? If so, what are the other options? h, m, s? I cannot find anything explicitly explaining the final portion of your command.
    – mas
    Commented Jun 18, 2018 at 21:58
  • 3
    @malan 1d means 1 day. See man sleep for other options. Like mentioned in an earlier comment, the full command just runs the final part with "inhibition lock taken". In pratice, the lid-switch events are disabled until sleep 1d completes (i.e., 1 day) or you kill it with, e.g., Ctrl+C
    – oseiskar
    Commented Mar 11, 2020 at 14:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .