我用一个Django项目(Ubuntu 14.04机器)的nginx反向代理使用gunicorn 19.7.1 appserver。
ps aux | grep gunicorn | grep -v grep | wc -l
ps aux | grep gunicorn | grep -v grep | wc -l
产量3043 。
而在/etc/init/gunicorn.conf
,我一直有-w 33
。 然而,即使我做sudo service gunicorn stop
和sudo service gunicorn start
这些额外的工作者坚持。
我如何杀死外来的工人?
我试过了:
sudo service gunicorn stop
和sudo service gunicorn start
没有工作。
接下来,我已经build议了两种方法来杀死外来的工人。 我试了他们 – 他们也没有成功。 基本上,当我尝试他们,没有任何反应。
这是第一种方法:
1)通过sudo service gunicorn status
获得gunicorn pid
2)保存所有“不需要”的工人:
echo 123 > desired_workers pgrep -P 123 >> desired_workers
3)现在让全球所有的gunicorn员工:
pgrep gunicorn > all_workers
4)最后,简单地做:
cat desired_workers all_workers | sort | uniq -u | xargs kill
以上没有工作。 同样做cat desired_workers all_workers | sort | uniq -u | xargs sudo kill
cat desired_workers all_workers | sort | uniq -u | xargs sudo kill
cat desired_workers all_workers | sort | uniq -u | xargs sudo kill
也不起作用。 也不要以root
身份进行尝试。
接下来,我只是尝试pkill gunicorn
和sudo pkill gunicorn
。 两种情况都没有发生。 我还能在这里做什么?
如何创build外部gunicorn工人?
在繁忙的生产系统中,一直在正确configuration33
工人。
然而几个小时前,我正在试图在服务器上进行python的多重处理,而事情却是南下。 Gunicorn工作人员吃掉了所有的记忆,并拿出了驻地redis实例。
我恢复了这个变化,并且设法让所有事情都恢复在线,除了记忆还没有被释放,我不得不应付这些传统的枪炮工人。 这是怎么回事?
你应该尝试用kill来发送不同的信号。 缺省值是TERM
,你可以尝试INT
,如果这不起作用KILL
,例如
cat desired_workers all_workers | sort | uniq -u | xargs kill -INT
如何创build外部gunicorn工人?
你做的事情
我正在试图在服务器上的python的多处理,东西南下。
你真的不应该对你的生产系统进行这种研究。 testing系统很容易旋转起来,比你花费的时间less(而不是固定)。