28

For some reason Ubuntu had not been having good support for suspend. Creating the /etc/polkit-1/localauthority/50-local.d/com.ubuntu.disable-suspend.pkla file with the below disabled suspend option in the main menu in 12.04. But, the same doesn't work after moving from 12.04 to 14.04.

[Disable suspend by default]
Identity=unix-user:*
Action=org.freedesktop.upower.suspend
ResultActive=no

How to disable suspend in 14.04?

  • 3
    bug report about this: https://bugs.launchpad.net/ubuntu/+source/policykit/+bug/1300460 – Rinzwind Apr 22 '14 at 15:10
  • @Rinzwind: The OP has not tried in the file mentioned in the bug report, the OP has mentioned a different file. – jobin Apr 22 '14 at 15:12
  • 2
    If only we were able to suppress the menu entry: https://bugs.launchpad.net/ubuntu/+source/indicator-session/+bug/1299753 – Takkat Apr 27 '14 at 16:09
  • Unfortunately the workaround does not help. I found that hint here too: https://sites.google.com/site/easylinuxtipsproject/bugs#TOC-Hibernate-and-suspend-don-t-always-work-well:-they-make-some-computers-malfunction-or-even-enter-a-coma But did not help neither... –  May 12 '14 at 09:09

3 Answers3

30

Create a new file called /etc/polkit-1/localauthority/50-local.d/com.ubuntu.disable-suspend.pkla with the following contents:

[Disable suspend (upower)]
Identity=unix-user:*
Action=org.freedesktop.upower.suspend
ResultActive=no
ResultInactive=no
ResultAny=no

[Disable suspend (logind)]
Identity=unix-user:*
Action=org.freedesktop.login1.suspend
ResultActive=no
ResultInactive=no
ResultAny=no

[Disable suspend when others are logged in (logind)]
Identity=unix-user:*
Action=org.freedesktop.login1.suspend-multiple-sessions
ResultActive=no
ResultInactive=no
ResultAny=no

and then reboot.

This tells PolicyKit to automatically say "no" whenever anything asks if it's OK/possible to suspend. Logout menus will react to this by automatically removing the 'Suspend' menu choice.

I don't quite understand why, but the upower setting is needed for KDE but does not affect Unity. The login1 settings are needed for Unity but do not affect KDE.

9

For me it is important to just disable the "automatic Suspend"
Because I still want to be able to do the "manual Suspend"
in /etc/polkit-1/localauthority/50-local.d/com.ubuntu.disable-suspend.pkla

So, I used:

[Disable suspend (upower)]
Identity=unix-user:*
Action=org.freedesktop.upower.suspend
ResultActive=no
ResultInactive=no
ResultAny=no

[Disable suspend (logind)]
Identity=unix-user:*
Action=org.freedesktop.login1.suspend
ResultActive=yes
ResultInactive=no
ResultAny=yes

[Disable suspend when others are logged in (logind)]
Identity=unix-user:*
Action=org.freedesktop.login1.suspend-multiple-sessions
ResultActive=yes
ResultInactive=no
ResultAny=yes

Now I can click "Suspend" in the logoff menu. But the PC keeps running unless I send it to "Suspend".

linolino
  • 135
  • I'm afraid this doesn't work anymore in 16.04: My laptop still goes to sleep after about 5 idle minutes. – MERose Jan 11 '17 at 16:00
1

You can't. This is a bug in polkit in 14.04. As a workaround, you can

chmod 000 /usr/lib/pm-utils/bin/pm-action

It would help if you vote up the above-mentioned launchpad bug.

Daniel
  • 460
  • Changed the permissions as mentioned and Suspend was still enabled. ---------- 1 root root 2903 Nov 6 16:26 pm-action – Praveen Sripati Apr 25 '14 at 07:23
  • 1
    It's still in the menu - only polkit can change that - but choosing it should have no effect now, because pm-action will fail to run. – Daniel Apr 26 '14 at 14:53