一旦系统处于非活动状态,10 分钟后它就会进入空白屏幕(但不会进入睡眠状态!),而这正是我想在去喝咖啡或休息时在终端中执行长时间运行的脚本的时刻。当我回来并“唤醒”系统时(虽然从技术上讲它不是“睡眠”),我可以手动停止在屏幕关闭时执行的正在运行的程序。
此类命令的示例:
/usr/bin/screen -S screen-off -dm my-command
有很多类似的问题(在 Ubuntu 中注销/重启/关机时执行脚本),但是它们处理在睡眠和唤醒时执行的服务,这不符合我的需要。
答案1
您可以dbus-monitor
像这样观察屏幕保护程序信号:
dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'" |
while read x; do
case "$x" in
*"boolean true"*) echo "Start my script";;
*"boolean false"*) echo "Cancel my script";;
esac
done
将这些语句替换echo
成您需要的任何内容,然后就可以了。