How to make "suspend" option work?

In the power management, I selected the option called "suspend when I close the lid". If I close the lid, the computer is not suspending. It keep itself on. How can I solve this problem?


Solution 1:

This usually happens when some process stops the system from being suspended.

Do

dmesg -T|grep Freez -A4

and look for these entries:

--
[sun mar  3 15:19:48 2013] Freezing user space processes ... 
[sun mar  3 15:20:08 2013] Freezing of tasks failed after 20.01 seconds (3 tasks refusing to freeze, wq_busy=0):
[sun mar  3 15:20:08 2013] mount.nfs       D e8631aa0     0  5518   5517 0x00800004
[sun mar  3 15:20:08 2013]  e8631b10 00000086 f7bc0e00 e8631aa0 c1053cb4 c1809020 c192ee00 c192ee00
--

Check the time stamps to see which of the reported problems relate to your try to suspend. In this case, it is mount.nfs that is causeing the problems.

Now, put a script in /etc/pm/sleep.d/, scripts there will be run at suspend and resume. The file name should start with an ordering number, 00-49 for user scripts (for more details, see man pm-suspend).

The script could look like this

#!/bin/sh
(killall -1 mount.nfs; exit 0)

with correpsonding entries for other processes that caused problems, if any.

Parenthesis and exit 0 is a trick: if the process isn't found, killall will exit with exit code 1, which will cancel the entire suspend. The above will run killall in a sub-shell that will exit with 0.

If you're having problems, check /var/log/pm-suspend.log that will log the attempt to suspend and to run your script.

Solution 2:

Does the computer suspend when you choose the suspend option instead of closing the lid?

Check the suspend logs at /var/log/pm-suspend.log

that might tell you why it's not suspending.