我正在尝试为我的烧瓶应用程序创建一个upstart脚本。我正在使用uWSGI来运行它。 我的应用程序驻留在/ home / user / apps / myapp中。它包含venv中的虚拟环境。 我的目标是激活虚拟环境并在那里执行ini脚本
#description "Starts my app"
#author "Me <myself@gmail.com>"
start on runlevel [2345]
stop on runlevel [!2345]
script
cd /home/user/apps/myapp
source venv/bin/activate
exec uwsgi --ini myapp.ini
end script
当我在/ etc / init /中运行命令sudo start myapp时。我得到的错误就像进程因状态127而终止。这意味着我的命令是未知的。我是新手脚本的新手。我做错了什么,这些脚本在shell中运行良好。
答案 0 :(得分:0)
source
命令不是标准的shell命令。 Whatever Upstart is using internally doesn't use it.请使用点运算符:. file
。
但是,您不需要uwsgi
之前的任何一个命令,工作目录和virtualenv都可以在uWSGI中配置。让uWSGI处理virtualenv会更好,source activate
只是为了方便开发。
myapp.ini
:
[uwsgi]
virtualenv = /path/to/env
chdir = /path/to/project
# other config here