php - 是什么杀死了这个进程以及如何阻止它这样做

标签 php linux bash apache centos

作为流程自动化例程的一部分,我有一个 shell 脚本,它通过 CLI 执行多个 PHP 脚本。其中一个,当然是最后一个,非常非常长。我收到的代码库一团糟,大部分 import.php 脚本和 ImportProduct.php 对象基本上是不可修改的。

上周我完成了 MySQLi 的代码更新并开始测试,并不断收到类似的进程终止消息。我已经挖掘了 Magento PHP 库、我自己的代码、原始代码,但找不到任何会导致它的原因。仅凭这种格式就可以让人相信是 PHP CLI 解释器、Linux 操作系统或 Apache(如果它甚至通过 Apache 运行,遗憾的是不太懂系统管理)导致了终止。我通过 SSH 连接到远程服务器,但最后两行显示 SSH 本身没有超时。

PHP CLI 的默认超时是没有的,但是将其设置为 0 或 180 天没有什么区别。因此,我认为这个问题属于较低层次。 请不要为 root 访问而尖叫,这不是我决定以这种方式工作。

这是我的消息的一部分。第 5 行包含终止消息。

new_import_products.php: ET068FII.TXT: Processed 406085 records in 1686 queries. 
import.php: Begin
ImportProduct.php> start 1055398
import.php: done loadFile()
./executeFullUpdateImport.sh: line 58: 4908 Killed php -f import.php
executeFullUpdateImport> full update/import completed
executeFullUpdateImport> Performed in 384m, 56s.\n\n
[root@stinedev import]# 
[root@stinedev import]# ls

搜索这样的东西是非常没有帮助的。 Google 返回了 90 亿页关于如何终止进程...而不是保持进程存活的信息,无论我使用何种术语组合(诚然,我可能会问错误的问题)。

最佳答案

我也遇到过这种情况。一个可能的原因是 oom Killer。这很容易检查。 dmsg 将打印此行为。 当其他一些用户进程发送信号杀死时,我的解决方案是使用内核试听。 googleauditctl 第一个条目。

关于php - 是什么杀死了这个进程以及如何阻止它这样做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29751565/

相关文章:

php - 从字符串中获取第一个 HTML 元素

linux - 使用 LetsEncrypt 通配符证书签署 CSR

linux - Makefile patsubst 使用 shell 变量的值

macos - 在 Bash 父 shell 中更改 PS1 提示符

php - 如何创建 PHP 方法链接?

php - Symfony2 AJAX 登录

c++ - 刷新排队的 GPIB 响应

linux - 将 bash 脚本从 Windows 翻译到 Linux

git - 是否可以用我自己的版本覆盖 git 命令?

php - PDO 返回一个看起来空白的对象,如何查看更多信息?