对于使用 systemd 的 Linux 发行版,这两个命令之间有实际区别吗?
systemctl suspendpm-suspend我应该使用或更喜欢哪个?
当我的计算机从内存暂停中唤醒时,我需要锁定屏幕,
所以我尝试将以下脚本放入/usr/lib/pm-utils/sleep.dand /etc/pm/sleep.d,但它从未执行过,
#!/bin/sh
case "$1" in
hibernate|suspend)
;;
thaw|resume)
vlock -ans
;;
*) exit $NA
;;
esac
Run Code Online (Sandbox Code Playgroud)
PS它pm-suspend不是pm-hibernate。
编辑
也尝试过 systemd 服务,但没有运气:
# /etc/systemd/system/resume@.service
[Unit]
Description=User resume actions
After=suspend.target
[Service]
User=root
Type=simple
ExecStart=vlock -ans
[Install]
WantedBy=suspend.target
Run Code Online (Sandbox Code Playgroud)
我systemctl enable resume@.service也打过电话,vlock 仍然没有被调用。
我在 Linux Mint 14 上尝试了多次休眠。它似乎不起作用。我添加了一些我认为可能有用的日志。有人可以帮我诊断问题吗?
笔记本电脑型号:I:TOSHIBA Satellite R630/便携式电脑,BIOS 版本 1.90 02/24/2011
/var/日志/系统日志
Feb 21 21:21:51 kernel: [ 3526.006366] PM: Marking nosave pages: [mem 0x0009e000-0x000fffff]
Feb 21 21:21:51 kernel: [ 3526.006372] PM: Marking nosave pages: [mem 0xb70d0000-0xffffffff]
Feb 21 21:21:51 kernel: [ 3526.007297] PM: Marking nosave pages: [mem 0x1fc000000-0x1ffffffff]
Feb 21 21:21:51 kernel: [ 3526.007556] PM: Basic memory bitmaps created
Feb 21 21:23:00 kernel: imklog 5.8.6, log source = /proc/kmsg started.
Feb 21 21:23:00 kernel: [ 7.877813] EXT4-fs (sda5): INFO: recovery …Run Code Online (Sandbox Code Playgroud) 我有一个文件:/etc/pm/sleep.d/85rmNvidiaModule. 其中我有:
#!/bin/bash
case $1 in
suspend)
echo "Oh, this time we are doing a suspend to RAM. Cool!"
sudo modprobe -r nvidia-uvm; optirun true
;;
*)
echo "Not doing anything useful"
;;
esac
Run Code Online (Sandbox Code Playgroud)
这在我使用时效果很好pm-suspend,但在我使用电源按钮暂停或执行以下操作时不起作用:
dbus-send --system --print-reply \
--dest=org.freedesktop.login1 /org/freedesktop/login1 \
"org.freedesktop.login1.Manager.Suspend" boolean:true
Run Code Online (Sandbox Code Playgroud)
所以问题是当我使用 gnome-shell 3.14.1 挂起时如何运行脚本。
此外,我使用的是 Debian GNU/Linux jessie/sid,并且大多数软件包都安装得非常干净。
pm-utils ×4
suspend ×3
arch-linux ×1
d-bus ×1
hibernate ×1
linux-mint ×1
systemctl ×1
systemd ×1