在 Cron 中使用 dbus-send

在 Cron 中使用 dbus-send

我想设置一个 cron 作业,每天下午三点锁定我的会话。当我进入dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock终端窗口时,会话会立即锁定,但是当我在 crontab 中执行相同操作时(即使使用 BASH 脚本),它不起作用。我想创建一个 BASH 脚本来锁定会话并将dbus-send其添加到crontab

答案1

使用 loginctl 从 crontab 锁定您的桌面屏幕。

/opt/bin/lock-session.sh:

#!/bin/bash

# crontab -e
# min hour dom month dow command
# 0 15 * * * /bin/bash -c /opt/bin/lock-session.sh

# Display     (is the first value of Sessions).
# Sessions    (array of sessions).
property=Sessions

for session in $(loginctl show-user $USER -p $property --value); do
    [[ \
    $(loginctl show-session $session -p Desktop --value) ]] && loginctl lock-session $session
done

exit 0

相关内容