1

I've been using this suspend hook with Ubuntu & Kubuntu since the days of 12.10, however when I did a clean install of Xubuntu 15.04 yesterday, I noticed it suddenly not working. I've created a file /usr/lib/pm-utils/sleep.d/45fixusbwakeup copied the script into it, and made it executable with sudo chmod +x /usr/lib/pm-utils/sleep.d/45fixusbwakeup as I always did before. I'm not an expert, and this hook has always been working from me, so I don't have a clue what could be wrong now.

What I basically need is that these 3 commands execute every time before computer is going to sleep, or at every startup:

sudo -s
echo USB0 > /proc/acpi/wakeup
echo USB2 > /proc/acpi/wakeup

I would also like to note that when I suspend via terminal command sudo pm-suspend the script works flawlessly, it's only not working via traditional logout--->suspend button in Xubuntu, so I guess this is something Xubuntu-related. I guess it actually suspends via xfce4-session-logout --suspend and that's creating the problem.

Reloader
  • 223

2 Answers2

4

xfce4-session will use systemd-sleep on a systemd system (not pm-suspend). systemd-sleep hooks should be put in /lib/systemd/system-sleep using the following template:

#!/bin/sh
case $1/$2 in
  pre/*)
    echo "Going to $2..."
    ;;
  post/*)
    echo "Waking up from $2..."
    ;;
esac

...and made executable. One other caveat with systemd is that the scripts in this directory are run concurrently, not sequentially based on name (as is the case with pm-utils).

Reloader
  • 223
1

To run the commands on startup

Place the commands (remove sudo -s) into a .sh file and make it executable with chmod +x <filename>.

Create a new bash script containing gksudo -s root <path_to_other_bash_script> and make it executable.

Create a file with a .desktop suffix in the ~/.config/autostart directory - create the folder if you don't have it.

Place the following into the .desktop file:

[Desktop Entry]
Name=name_of_second_bash_script
Exec=path/to/second/script
Type=Application

The commands present in the bash script will be run on startup.

TellMeWhy
  • 17,964
  • 41
  • 100
  • 142