问题描述
我正在尝试使用 Chef 部署 django 应用程序(开发模式)。问题是,当执行配方时,服务器不会保持活动状态。当我登录时,该命令有效,但因为它不会更改会话。任何建议都有帮助。
execute 'django_run' do
user 'root'
cwd '/var/www/my-app/'
command 'source ./.venv/bin/activate && sudo -E nohup python2 ./manage.py runserver 0.0.0.0:8000 > /dev/null 2>&1 &'
end
解决方法
我怀疑 sudo 和 & 在这里发挥了作用。尝试使用 sudo -b
而不是 & 号。还有一个更好的方法是使用 service
厨师资源而不是 execute
:
https://docs.chef.io/resources/service/