crontab 源命令
Crontab Source Command
我正在尝试向 cron 添加作业,我遇到了这个问题:
You must source this script: $ source /home/flask/bin/activate
当我尝试在其位置使用 .
````source```
那么问题来了:
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
.这可能不是你想要的。 (它将对 shell 环境所做的任何更改都由 foo
在 bash 的实例本地完成,因此对 bar
是不可见的)。此外,foo 应该是一个文件名,因此 .
不会在那里工作(因此“. 是一个目录”消息)。
它可能会起作用
bash -c ". /whatever/activate; python3 foo.py"
但我建议将所有需要的东西放在一个 shell 脚本中,然后从 cron 调用该脚本。
我不确定 tty 的东西。看起来 真的 想要一个终端与之交谈,但那可能是你的 bash_profile 或类似的东西,因为你 运行ning bash 与 -l
.
我用这个修复了它:
SHELL=/bin/bash
PYTHONPATH="/home/flask/"
* * * * * bash -c ". /home/flask/bin/activate; python3 application/script/myscript.py"
感谢 Nature Pålsson 的回答
我正在尝试向 cron 添加作业,我遇到了这个问题:
You must source this script: $ source /home/flask/bin/activate
当我尝试在其位置使用 .
````source```
那么问题来了:
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
.这可能不是你想要的。 (它将对 shell 环境所做的任何更改都由 foo
在 bash 的实例本地完成,因此对 bar
是不可见的)。此外,foo 应该是一个文件名,因此 .
不会在那里工作(因此“. 是一个目录”消息)。
它可能会起作用
bash -c ". /whatever/activate; python3 foo.py"
但我建议将所有需要的东西放在一个 shell 脚本中,然后从 cron 调用该脚本。
我不确定 tty 的东西。看起来 真的 想要一个终端与之交谈,但那可能是你的 bash_profile 或类似的东西,因为你 运行ning bash 与 -l
.
我用这个修复了它:
SHELL=/bin/bash
PYTHONPATH="/home/flask/"
* * * * * bash -c ". /home/flask/bin/activate; python3 application/script/myscript.py"
感谢 Nature Pålsson 的回答