Crontab Source Command



我正在尝试添加工作到cron, ım有这个问题:

You must source this script: $ source /home/flask/bin/activate

当我尝试使用.在其位置````源' ' '

那么问题是:

mesg: ttyname failed: Inappropriate ioctl for device
.: .: is a directory

这是我的crontab文件:

SHELL=/bin/bash
PYTHONPATH="/home/flask/"
* * * * * bash -l  /home/flask/bin/activate && python3 application/script/myscript.py

任何帮助将是伟大的,非常感谢。

当您在crontab中有这个

bash -l foo && bar

cron(或者更严格地说,是由cron调用的shell)将首先运行bash -l foo,然后作为单独的命令运行bar。这可能不是你想要的。(它将使foo对shell环境所做的任何更改对bash实例都是本地的,因此对bar是不可见的)。此外,foo应该是一个文件名,因此.在那里不起作用(因此使用"。是目录"消息)。

It might work to do

bash -c ". /whatever/activate; python3 foo.py"

,但我建议把所有需要的东西放在一个shell脚本中,并从cron调用该脚本。

我不确定tty的东西。看起来有些东西真的想要与终端通信,但那可能是您的bash_profile或类似的东西,因为您正在使用-l运行bash。

我用这个修复了它:

SHELL=/bin/bash
PYTHONPATH="/home/flask/"
* * * * * bash -c ". /home/flask/bin/activate; python3 application/script/myscript.py"

感谢Ture p课的答案

相关内容

  • 没有找到相关文章

最新更新