EDIT 2 27/06/2013 python脚本:这个问题是一个愚蠢的错误无关VENV和cron。 用cron运行venv与创建venv的同一个用户使用下面的激活描述很好。的Cron&VIRTUALENV:克朗不运行需要的virtualenv
编辑 25/06/2013:由于nohup.out在cron运行后没有改变,我怀疑问题在于使用virtualenv。 cron的设置与用户从命令行运行脚本的用户相同。
我已经写了一个脚本来激活venv然后运行一个python脚本。它完美地在命令行中运行,当我做
nohup /home/heyheyhey/run.sh &
然而,对于一些魔法的原因,蟒蛇部分不从cron运行:run.sh的
0 4 * * * /home/heyheyhey/run.sh &
内容:
#! /bin/bash
cd /home/heyheyhey
. /home/heyheyhey/.pythonbrew/venvs/Python-2.7.2/venvname/bin/activate 2> error.log
python /home/heyheyhey/top.py 2> error.log
bzip2 -c "Exporter.csv" > "extraction.csv.bz2"
run.sh会在创建输出压缩文件后执行。 但是,python脚本不起作用,因为Exporter.csv没有更新,我没有看到日志文件中的活动。
感谢您的帮助!
没有必要在cron作业中使用'nohup'或'&'。 'nohup'没有必要,因为没有终端可以断开连接,'&'不需要,因为cron中的所有内容都在后台有效。 – Barmar
是的,我同意,但我尝试过,没有nohup,没有区别,python脚本仍然不运行! – antoinet
我从来没有说过会有所作为,我只是说没有必要。 – Barmar