我正在使用upstart来启动此脚本:
pre-start script
sudo export WORKON_HOME=~/.envs
sudo source /usr/local/bin/virtualenvwrapper.sh
sudo workon env1
end script
start on runlevel [2345]
stop on runlevel [!2345]
exec python /home/radiant/www/staging/django_project/manage.py celerycam > /home/radiant/www/staging/logs/celerycam.log
respawn
respawn limit 10 90
如果它没有pre-start script
,那么使用脚本块我就可以了:
开始:作业无法启动
而不是使用虚拟环境的python解释器来源工作正常:)
之前应该考虑过这个!
任何想法可能是什么?
答案 0 :(得分:2)
我不是一个新贵专家 - 但我认为问题在于你是在尝试sudo这些命令。如果upstart使用股票“sudo”,那么你试图将shell函数作为命令运行 - 你不能这样做。
尝试删除它的sudo部分以查看它是否有效。
pre-start script
export WORKON_HOME=~/.envs
source /usr/local/bin/virtualenvwrapper.sh
workon env1
end script
答案 1 :(得分:1)
在Upstart下运行时,它可能是~
解析的内容。尝试为WORKON_HOME
指定绝对路径,并检查作业运行的用户是否具有对所有相关目录和文件的权限。