Python Selenium 从 cronjob linux 和 shell 脚本执行

问题描述 投票:0回答:1

我有一个 shell 脚本,它通过 cronjob 执行 python 脚本。

如果我运行 shell 脚本或 python 脚本,它执行时不会出现任何问题。

只有当我从 cronjob 执行它时才会出现问题。

Shell 脚本

!/bin/bash


# Set environment variables
export XDG_RUNTIME_DIR=/run/user/$(id -u)
export PATH=$PATH:/snap/bin
export DISPLAY=:0
#export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

#echo "Current Date and time: $(date)"
#echo "current directory: $(pwd)"

#Xvfb :99 -screen 0 1024x768x24 &

#export PATH=$PATH:/usr/local/bin
#export DISPLAY=:0  #:99

LOGFILE=/opt/runscript.log

echo "Script Started at $(date)" >> $LOGFILE

cd /home/carson/Documents/code/python/speech2txt

source /home/carson/Documents/code/python/speech2txt/venv/bin/activate
#source ./venv/bin/activate
#/usr/bin/python3 /home/carson/Documents/code/python/speech2txt/createAudio.py >> /opt>

#/usr/bin/python3 /home/carson/Documents/code/python/speech2txt/cronBrowser.py >> $LOG>

su - carson -c "/usr/bin/python3 /home/carson/Documents/code/python/speech2txt/cronBro>

#echo "exit status $?"
deactivate

if [ $? -eq 0 ]; then
        echo "Script Success - $(date)" >> $LOGFILE
else
        echo "Script Failure - $(date)" >> $LOGFILE
fi

强盗

12 16 * * * carson /opt/run.sh

#08 22 * * * PATH=$PATH:/usr/local/bin/:/usr/bin/:/usr/sbin:/bin && DISPLAY=:0 && /opt/run.sh

##47 21 * * * export XDG_RUNTIME_DIR=/run/user/$(id -u) && export PATH=$PATH:/snap/bin && /opt/run.sh >> /opt/runscript.log 2>&1




python linux bash selenium-webdriver cron
1个回答
0
投票

这是我的问题的答案

0 8-16 * * 1-5 XDG_RUNTIME_DIR=/run/user/$(id -u) /usr/bin/python3 /home/code.script.py

我能够剪切 Shell 脚本并直接使用 python3 运行它。

我必须为

XDG_RUNTIME_DIR
使用
pulseaudio
环境变量,以便我的 cronjob 可以使用该服务。

我也在使用

Selenium
headless,因为 cronjob 无权访问显示。

我遇到的唯一问题应该非常简单,当我从 cronjob 运行它时,我的代码无法将其输出写入文件。当我用 python 正常运行它时,它没有问题。 无论如何,这是另一天的问题!

谢谢弗拉斯

© www.soinside.com 2019 - 2024. All rights reserved.