gpt4 book ai didi

python - 计划任务 : how to run a script that requires to open display?

转载 作者:太空狗 更新时间:2023-10-29 11:15:39 29 4
gpt4 key购买 nike

我想设置一个 cron 作业来运行 python 脚本,但它给了我这个错误:

RuntimeError: could not open display

这是因为我导入了一个需要我打开显示的模块(例如pylab)。即使我的脚本不会生成任何图片来显示在监视器上。

有没有办法让 crontab 在显示打开的情况下运行我的作业(就像我 ssh -X 进入机器一样)?我实际上不需要为监视器生成任何图表。我只需要正确导入我的模块。

最佳答案

您需要一个有效的 DISPLAY 和 XAUTHORITY 才能在 Cron 中使用 X-Programms!

要设置 DISPLAY 非常简单,在 Bash 中输入:

export DISPLAY=":0.0"

为了获得有效的 XAUTHORITY,您必须寻找它。在 Debian/Gnome/gdm3 下,它们保存在 var/run/gdm3/*/database我使用了以下脚本:

export DISPLAY=":0.0"
[ -z $USER ] && USER=$( who | awk '{ print $1 }' | sort | uniq >/tmp/test )
for I in /var/run/gdm3/*; do
AUTHUSER="`echo $I | awk -F '-' '{ print $3 }'`"
for J in $USER; do
[ "${AUTHUSER}" = "${J}" ] || continue
USER="$J"
export XAUTHORITY="${I}/database" && break
done
done
sudo -u ${USER} /Path/to/xProgramm

Var $USER 可以为空,以便脚本查找有效用户,否则您可以告诉脚本 var!

关于python - 计划任务 : how to run a script that requires to open display?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11015029/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com