我正在使用面料进行使用gunicorn的网站部署。
我有以下代码,由deploy()
函数调用。
def restart_gunicorn():
sudo('ps ax|grep gunicorn')
sudo('pkill -HUP -f [g]unicorn.*master')
sudo('gunicorn -b 0.0.0.0:8080 %(path)s/application/wsgi &' % env)
当我运行fab文件时,它显示如下:
out: 7694 pts/18 S+ 0:00 grep gunicorn
[127.0.0.1:2222] out:
[127.0.0.1:2222] sudo: pkill -HUP -f [g]unicorn.*master
[127.0.0.1:2222] out: sudo password:
[127.0.0.1:2222] out:
Fatal error: sudo() received nonzero return code 1 while executing!
Requested: pkill -HUP -f [g]unicorn.*master
我认为它应该杀死gunicorn并重启它.. 我在这里缺少什么?
答案 0 :(得分:5)
这是因为你的枪炮过程并没有完全命名为gunicorn
而且你可能有不止一个枪炮进程(主人和工人)。
通常是你要杀死的主人。您很少想要将其彻底删除,更常见的是您只想重新加载代码,因此-HUP就足够了。所以试试这个:
sudo('pkill -HUP -f [g]unicorn.*master')
根据您的评论,似乎您的大部分问题都归因于Gunicorn根本没有在您的系统上运行。有两种选择,您可以事先进行测试,也可以只使用warn_only
with settings(warn_only=True):
sudo('pkill -HUP -f [g]unicorn.*master')
sudo('gunicorn -b 0.0.0.0:8080 %(path)s/application/wsgi &' % env)
请注意,此处不需要您的sudo(' ps ax | grep gunicorn')。
答案 1 :(得分:0)
我用这个:
sudo('reload gunicorn')