【问题标题】:Can I safely kill a ton of my /usr/sbin/apache2 -k start PIDs? [closed]我可以安全地杀死大量的 /usr/sbin/apache2 -k start PID 吗? [关闭]
【发布时间】:2013-02-01 22:33:25
【问题描述】:

大规模杀死我的网站上的每个 PID 是否“安全”——服务 dedi(debian 压缩)匹配这个(我知道这是 Apache 的)? www-data /usr/sbin/apache2 -k start

我不会告诉你细节,但是这些 PID 是入侵的最终未删除的残余,仍然有超过需要的 maaaaany 正在运行,而且我的 dedi 有太多的“已建立”连接,本地 ipconntrack,在 netstat 中看到的每秒 TCP 打开连接和重置连接,“已建立:通过防火墙的连接”,我在 Munin 中看到的几个指标仍然超出图表。

我很想大规模关闭它们,但我不知道是否 - 这可能会“破坏”一些不会自行重启的重要事物,或者如果 - 这只会意味着互联网上其他地方计算机上的浏览器会突然停止接收数据,并且需要按 F5

谢谢你告诉我! :)

【问题讨论】:

  • 如果你遇到了入侵,你当然应该重启整个系统。

标签: apache tcp kill munin


【解决方案1】:

如果你愿意,你可以杀死他们。如果他们正忙于处理来自一个或多个 HTTP 客户端的连接,那么这些连接将会中断。如果它们空闲等待新连接,那么它们会优雅地死掉,但在这种情况下,Apache 的主进程可能会重新启动它们,因为它想保留一定数量的备用服务器(配置参数MinSpareServers)。

如果您的备用服务器比您需要的多,那么更好的办法是调低 Apache 配置参数 MaxSpareServers。如果你这样做并重新加载 Apache,Apache 将自行杀死多余的进程。

只是不要杀死 Apache 主进程。那是所有其他进程的父进程,其父进程 ID 为 1。如果您杀死该进程,则 Apache 将关闭。

【讨论】:

  • 感谢您的确认,Celada !但是,您知道我如何“识别”其中哪一个是主要的 Apache 进程吗?我打算使用我的 virtualmin 的 PID 列表将其导出到文本文件,然后将其粘贴到 putty 作为 kill -9,事实上,我真的不知道如何找到哪个是“原始 Apache” ,我必须打开每个 PID 的详细信息页面才能找到父级,这需要一天的时间......
  • 如果对ps使用-f-l选项,则有一个PPID(父进程ID)列。主 Apache 进程是其进程 ID 出现在所有其他进程的 PPID 列中的进程,即主进程是所有其他进程的父进程。主 Apache 进程自己的 PPID 通常等于 1。
  • 另外:无需直接跳转到kill -9。首先尝试定期杀死,这将使进程有机会清理。保留kill -9 (kill -KILL) 用于处理进程拒绝终止并且您确实想粗暴地杀死它而不给它任何清理机会的情况。
  • 我什至不会费心杀死主进程。事实上,考虑到“入侵的残余”,我会killall -9 apache 而不会浪费任何想法。如果需要,可以随时键入/etc/init.d/apache start
猜你喜欢
  • 1970-01-01
  • 2017-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-23
  • 2011-12-12
  • 2012-10-15
  • 1970-01-01
相关资源
最近更新 更多