How to disable suspend in 14.04?

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?


Solution 1:

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.

Solution 2:

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

Solution 3:

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.