我有一台运行 Debian Jessie 的笔记本电脑,仅包含 Linux 控制台 - 没有安装 X 服务器。
最近dist-upgrade
用 systemd 替换了 sysvinit。
现在我试图让 systemd 在计算机睡眠时锁定控制台(这之前是由/etc/pm/sleep.d
. 中的脚本处理的)
我试过这个:
/etc/systemd/system/screenlock.service
:
[Unit]
Description=Lock X session using slock
Before=sleep.target
[Service]
User=<username>
ExecStart=/usr/bin/vlock -ans
[Install]
WantedBy=sleep.target
进而:
systemctl enable screenlock.service
类似的解决方案在另一台装有 X 的计算机上适用于我,但在控制台中不起作用。
怎么可能?
答案1
使用 systemctl suspend 时,/usr/lib/systemd/system-sleep/ 中的脚本将在挂起|休眠前后执行,因此您可以添加一个脚本从那里启动 vlock。这里有很多细节ArchLinux Systemd 维基页面。
答案2
我通过使用让它工作物理锁而不是 vlock 与/etc/systemd/system/screenlock.service
这样的文件:
[Unit]
Description=Lock X session using slock
Before=sleep.target
[Service]
User=<username>
ExecStart=/usr/local/bin/physlock -d
[Install]
WantedBy=sleep.target