为了账号安全,请及时绑定邮箱和手机立即绑定

Cron和virtualenv

Cron和virtualenv

MMTTMM 2019-11-05 14:36:53
我正在尝试从cron运行Django管理命令。我正在使用virtualenv将我的项目沙盒化。我在这里和其他地方都看到了一些示例,这些示例显示了在virtualenv内部运行管理命令的过程,例如:0 3 * * * source /home/user/project/env/bin/activate && /home/user/project/manage.py command arg但是,即使syslog在任务应该启动时显示一个条目,该任务也不会实际运行(脚本的日志文件为空)。如果我从外壳程序手动运行该行,它将按预期工作。当前,我可以通过cron来运行命令的唯一方法是将命令分解并将其放入笨拙的bash包装器脚本中:#!/bin/shsource /home/user/project/env/bin/activatecd /home/user/project/./manage.py command arg编辑:ars提出了一种有效的命令组合:0 3 * * * cd /home/user/project && /home/user/project/env/bin/python /home/user/project/manage.py command arg至少就我而言,为virtualenv调用激活脚本没有任何作用。这是可行的,因此在演出中如此。
查看完整描述

3 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

与其摆弄特定于virtualenv的shebang,不如摆PATH在crontab上。


在激活的virtualenv中,运行以下三个命令,并且python脚本应该可以正常工作:


$ echo "PATH=$PATH" > myserver.cron

$ crontab -l >> myserver.cron

$ crontab myserver.cron

现在,crontab的第一行应如下所示:


PATH=/home/me/virtualenv/bin:/usr/bin:/bin:  # [etc...]


查看完整回答
反对 回复 2019-11-05
  • 3 回答
  • 0 关注
  • 406 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信