我使用 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
<小时/>
没有预启动脚本
它可以工作,使用脚本 block 我得到这个:
<小时/>start: Job failed to start
我的修复:
不使用虚拟环境的 python 解释器进行采购也可以正常工作:)
之前就应该考虑一下这个问题!
<小时/>有什么想法吗?
最佳答案
我不是一个 Upstart 专家 - 但我认为问题是你试图 sudo 这些命令。如果 upstart 使用普通的“sudo”,那么您正在尝试将 shell 函数作为命令运行 - 但您不能这样做。
尝试删除其中的 sudo 部分,看看它是否有效。
pre-start script
export WORKON_HOME=~/.envs
source /usr/local/bin/virtualenvwrapper.sh
workon env1
end script
关于python - virtualenv 的 Upstart 问题 - Python/Ubuntu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4555602/