为什么upstart无法运行'source bin/activate'?
upstart出于某种原因没有激活我的虚拟环境。
这是我运行它的方式:
script
# My startup script, plain old shell scripting here.
cd path/to/env
source bin/activate
....
end script
当我手动启动虚拟环境时,它运行得很好。
为什么这样不行呢?
2 个回答
43
source
是一个bash内置命令,但它只是一个posix的“特殊”命令。
Upstart在执行脚本部分时会运行 sh -e
。
sh这个命令行工具不认识 source
,它只懂 .
。
53
我搞明白了,出于某种原因,upstart 不喜欢用 'source' 这个命令,所以我把这一行从:
source bin/activate
改成了
. bin/activate
这样就可以了,不过我不知道为什么,所以如果有人能解释一下这其中的原因,我会很感兴趣。