I had the same problem with Linux Mint Cinnamon 17.2. Since it's based on Ubuntu 14.04 I expect many things are much the same.
Having searched the suspend on lid closed problem I found myself here and up until then, the best I had come up with was to manually suspend the first time after a boot and afterwards the closed lid would suspend. Having read through these posts and comments I believe I've resolved the issue.
Here's what I did:
Opened a terminal session and, using nano instead of vim, typed;
sudo nano /etc/systemd/logind.conf
As suggested, I removed the # before HandleLidSwitch=suspend
. Then I saved it.
Then I typed...
mkdir /etc/acpi/local
sudo nano /etc/acpi/local/lid.sh.post
...and copied and pasted the next 5 lines previously posted
#!/bin/bash
if grep -q closed /proc/acpi/button/lid/*/state
then
sudo /usr/sbin/pm-suspend
fi
NOTE: To make this work I added the sudo
to the line /usr/sbin/pm-suspend
. Otherwise it would not run.
Finally I saved it and as previously posted, typed;
the logged-in user instead of root, typed;
sudo chmod 755 /etc/acpi/local/lid.sh.post
Unfortunately, this did not work. I did some tests, however, on the commands in the script and they did work so I decided something else wasn't triggering them. Further down the posts I came across a reference to a Gnome power manager bug:
https://bugs.launchpad.net/ubuntu/+source/upower/+bug/863834
Particularly interesting was a post by Michael Backhaus on 2012-06-09 in which he wrote:
/etc/acpi/events/lidbtn
triggers /etc/acpi/lid.sh
which triggers /etc/acpi/local/lid.sh.post
.
Following this was an almost identical version of the above bash script, lid.sh.post
.
In this version of Mint, /etc/acpi/events/lidbtn
and /etc/acpi/lid.sh
did not exist. However, /etc/acpi/events/powerbtn
and /etc/acpi/powerbtn.sh
did. A look at "powerbtn" provided an answer
This is my work-around:
To create a custom "lidbtn", typed;
sudo nano /etc/acpi/events/powerbtn
and modified it to like this for lidbtn;
# /etc/acpi/events/lidbtn
# This is called when the user closes the lid and calls
# /etc/acpi/lidbtn.sh for further processing.
# Optionally you can specify the placeholder %e. It will pass
# through the whole kernel event message to the program you've
# specified.
# We need to react on "button lid.*" and "button/lid.*" because
# of kernel changes.
event=button[ /]lid
action=/etc/acpi/lidbtn.sh
I saved it. Then copied /etc/acpi/local/lid.sh.post
to /etc/acpi/
and renamed it lidbtn.sh
.
I rebooted and now closing the lid always suspends my laptop. However, I have to manually wake it up when opening the lid. Next project to work on.
ADDENDUM: I should add that I do not have a second monitor. For me, the problem was that suspend simply did not work when the lid was closed.