crontab xinput 返回空结果

crontab xinput 返回空结果

我创建了一个文件/root/startup.sh(我在 Ubuntu 上,使用 Gnome 3.22.3 并具有 root 访问权限),其中包含以下内容:

#!/bin/bash
DISPLAY=":0"
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
SHELL="/bin/bash"

$(/usr/bin/xinput list > /root/Desktop/output.txt)

我已经将此行放入crontab -e文件中:

* * * * * /bin/bash /root/startup.sh

但是过了一分钟,文件output.txt创建完毕,我打开它时,它是空的,里面没有任何内容。
为什么?

答案1

根据我的经验,您还需要设置 XAUTHORITY 变量。

export XAUTHORITY=/home/<user>/.Xauthority

由于您通过 cron 以 root 身份启动脚本,因此 root 用户可能没有 .Xauthority 文件。但由于您在 cron 会话中是 root,因此您可以使用普通用户的那个。

答案2

网上有很多文章,关于这个问题有很多问题和答案,但没有一个通知我这个愚蠢的错误:

export DISPLAY=":0"
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
export SHELL="/bin/bash"

应该使用此代码来代替我的问题中的 3 行代码。
我应该export在它们之前添加。
而且它有效。

相关内容