我一直在使用这个悬挂钩从 12.10 开始我就一直在使用 Ubuntu 和 Kubuntu,但是昨天我全新安装 Xubuntu 15.04 时,发现它突然不工作了。我创建了一个文件,/usr/lib/pm-utils/sleep.d/45fixusbwakeup
将脚本复制到其中,并sudo chmod +x /usr/lib/pm-utils/sleep.d/45fixusbwakeup
像以前一样使它可执行。我不是专家,这个钩子一直对我有用,所以我不知道现在可能出了什么问题。
我基本上需要的是每次计算机进入睡眠状态之前或每次启动时执行这 3 个命令:
sudo -s
echo USB0 > /proc/acpi/wakeup
echo USB2 > /proc/acpi/wakeup
我还想指出的是,当我通过终端命令暂停时,sudo pm-suspend
脚本运行正常,只有通过 Xubuntu 中的传统注销--->暂停按钮时它才不起作用,所以我猜这是与 Xubuntu 相关的。我猜它实际上是通过暂停的,xfce4-session-logout --suspend
这就是问题所在。
答案1
xfce4-session 将在 systemd 系统上使用 systemd-sleep(而不是 pm-suspend)。systemd-sleep 钩子应使用以下模板放入 /lib/systemd/system-sleep 中:
#!/bin/sh
case $1/$2 in
pre/*)
echo "Going to $2..."
;;
post/*)
echo "Waking up from $2..."
;;
esac
...并使其可执行。systemd 的另一个注意事项是,此目录中的脚本是同时运行的,而不是根据名称按顺序运行(pm-utils 的情况就是如此)。
答案2
在启动时运行命令
将命令(删除sudo -s
)放入.sh文件并使用 使它可执行chmod +x <filename>
。
创建一个新的包含 bash 脚本gksudo -s root <path_to_other_bash_script>
并使其可执行。
创建一个文件。桌面目录中的后缀~/.config/autostart
- 如果没有,请创建该文件夹。
将以下内容放入。桌面文件:
[桌面条目] 名称=name_of_second_bash_script Exec=路径/到/第二/脚本 类型=应用程序
Bash 脚本中的命令将在启动时运行。