gpt4 book ai didi

linux - 脚本杀死太长的进程

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:53:35 25 4
gpt4 key购买 nike

我是虚拟主机所有者,目前我不知道为什么,但我有一些 php 脚本启动了很多小时(作为个人已知的客户),所以我认为某处存在错误。

这些脚本正在消耗 RAM 和交换...所以我正在寻找一种方法来列出进程,找到执行时间,如果执行超过 10 或 20 分钟,则一个一个地杀死它们。

我不是 bash 高手,但我知道 bash 和管道。我唯一不知道的是如何列出进程(包括执行时间和带参数的完整命令行)。实际上,即使在 top(然后是 c)中,php 中也没有参数:/

感谢您的帮助。

最佳答案

如果您使用 mod_php 运行 Apache,您将看不到单独的 PHP 进程,因为该脚本实际上是在 Apache 进程中运行的。如果您作为 FastCGI 运行,您也可能看不到用于实际脚本执行的可区分的 PHP 进程,尽管我没有使用 PHP/FastCGI 的经验并且在这方面可能是错误的。

您可以设置 max_execution_time选项,但在运行时可通过调用 set_time_limit() 覆盖它除非你运行 Safe Mode .但是,安全模式已在 PHP 5.3 中弃用并在 5.4 中删除,因此如果您使用的是 5.4 或计划升级,则不能依赖它。

如果您可以与现有客户一起管理它(因为在某些情况下它需要对 PHP 代码进行重大更改),running PHP as CGI应该允许您监视实际的脚本执行,因为每个 CGI 请求都会产生一个单独的 PHP 解释器进程,您应该能够区分它们正在执行的脚本。但是请注意,CGI 是最低效的设置(其他设置是 mod_php 和 FastCGI)。

关于linux - 脚本杀死太长的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11030544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com