在Ubuntu服务器上杀死成千上万的无关进程

我用一个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 stopsudo service gunicorn start这些额外的工作者坚持。

我如何杀死外来的工人?


我试过了:

sudo service gunicorn stopsudo 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 gunicornsudo 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(而不是固定)。