Bash 克朗元';t运行锁定屏幕的命令

Bash 克朗元';t运行锁定屏幕的命令,bash,cron,Bash,Cron,我想定期运行cron作业以锁定我的电脑 我在终端中键入这3个命令中的任意一个,它们都可以工作: dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock xdg-screensaver lock gnome-screensaver-command -l 当我把它们放在cron中时,什么也没发生 我还有另外两个运行SSH的作业。他们工作,而

我想定期运行cron作业以锁定我的电脑

我在终端中键入这3个命令中的任意一个,它们都可以工作:

dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock
xdg-screensaver lock
gnome-screensaver-command -l
当我把它们放在cron中时,什么也没发生

我还有另外两个运行SSH的作业。他们工作,而这一个特别不会

我尝试添加环境,但也不起作用。这就是我试图使crontab看起来的样子:

SHELL=/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin

* * * * * /usr/bin/xdg-screensaver lock
(newline,EOF)
我尝试了使用和不使用命令的前缀
/usr/bin/
。我尝试了使用和不使用cron环境。我也尝试了
SHELL=/bin/bash
。 我尝试了类似于nohup xdg屏幕保护程序锁的东西 没有结果

我尝试将其放入脚本中,然后通过cron运行脚本。没有结果

编辑:

我尝试在crontab中设置DISPLAY。当我做了
echo$DISPLAY
时,我得到了
:1
。 我将crontab更改为:

DISPLAY=:1
* * * * * /usr/bin/xdg-screensaver lock
(newline,EOF)
我的电脑仍然无法锁定。但是现在,当我用
服务cron status
检查cron的状态时,我看到了新的东西。出现以下新行:

   ├─25234 /usr/sbin/cron -f
   ├─25852 /usr/sbin/CRON -f
   ├─25853 /bin/sh -c /usr/bin/xdg-screensaver lock
   ├─25854 /bin/sh /usr/bin/xdg-screensaver lock
   ├─25862 dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager
   ├─25863 dbus-launch --autolaunch 6cd12da16cea4d79bb7367a0f8b8bd3e --binary-syntax --close-stderr
   └─25866 dbus-launch --autolaunch 6cd12da16cea4d79bb7367a0f8b8bd3e --binary-syntax --close-stderr


Jan 23 22:38:01 riff CRON[25923]: pam_unix(cron:session): session opened for user riff by (uid=0)
Jan 23 22:38:01 riff CRON[25924]: (riff) CMD (/usr/bin/xdg-screensaver lock)
Jan 23 22:38:01 riff dbus-daemon[25938]: [session uid=1000 pid=25936] AppArmor D-Bus mediation is enabled
Jan 23 22:38:04 riff dbus-daemon[25953]: [session uid=1000 pid=25951] AppArmor D-Bus mediation is enabled
Jan 23 22:38:07 riff dbus-daemon[25959]: [session uid=1000 pid=25957] AppArmor D-Bus mediation is enabled
Jan 23 22:38:10 riff CRON[25923]: (CRON) info (No MTA installed, discarding output)
Jan 23 22:38:10 riff CRON[25923]: pam_unix(cron:session): session closed for user riff
新行是以
dbus发送
dbus启动
dbus守护进程

我尝试在crontab中设置SHELL=/bin/bash,但这并没有改变任何事情

将错误重定向到日志后, 作为cron作业运行
xdg屏幕保护程序锁
,我得到错误:
错误:未知命令“锁定”。

使用
gnome屏幕保护程序-l
我得到错误:
**消息:23:25:04.831:获取会话总线失败:无法连接:连接被拒绝

使用dbus send--type=method\u call--dest=org.gnome.ScreenSaver/org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock我得到了错误:

无法打开到“会话”消息总线的连接:无法连接到套接字/tmp/dbus-ITbw92LLaf:连接被拒绝

所以我试着运行dbus发送。。使用root的crontab命令。现在的错误是:

Failed to open connection to "session" message bus: /usr/bin/dbus-launch terminated abnormally with the following error: No protocol specified
Autolaunch error: X11 initialization failed.
作为根cron作业运行gnome屏幕保护程序后出错:

** Message: 00:06:01.092: Failed to get session bus: Error spawning command line “dbus-launch --autolaunch=6cd12da16cea4d79bb7367a0f8b8bd3e --binary-syntax --close-stderr”: Child process exited with code 1

xdg屏幕保护程序
无法知道需要锁定哪个显示句柄。您需要先设置显示

在当前shell中,通过

echo $DISPLAY
然后将显示添加到crontab中

DISPLAY=:0.1 # <-- Example Display

可能需要设置显示。您的桌面环境应设置为在定义的非活动时间后锁定屏幕。那将是一个更好的解决方案。谢谢。它仍然不起作用,但我取得了一些进展。请检查已编辑的问题请再次检查我的答案。错误:未知命令“锁定”我认为错误很明显,您可能需要用谷歌搜索它。你也可以试试这个
lightlocker命令--lock
我没有安装它。我不知道用谷歌搜索什么。我尝试运行cron job$(xdg屏幕保护程序锁),但没有成功。我尝试了其他命令,但出现了“连接被拒绝”的错误。我已经编辑了我的问题。注意我是Ubuntu 18.10的用户。所以没有根权限。
* * * * * /usr/bin/xdg-screensaver lock >/your/log/path.log 2>&1