Cakephp 3 shell 脚本即使在作业完成后仍保留在内存中


Cakephp 3 shell script is staying in memory even after the job was finished

我有一个用 Cron 运行的 cakephp shell 脚本

bin/cake hello >/dev/null 2>&1

HelloShell.php main()是这样的:

public function main()
{
    $this->loadModel('Hello');
    $Hello = $this->Hello;
    $Hello->doStuff($this->args);
    return 0; // I tried to add return but it didn't help
}

HelloModel使用另一个模型,收集一些信息并将其保存到数据库中。

突然间,我注意到即使一切都完成了并且应该关闭,该过程也会保留在内存中。

我在控制台中运行ps aux并看到

p1033     607670  0.0  0.0 106100  1132 ?        Ss   23:42   0:00 /bin/sh -c /home/xxxx/public_html/bin/cake hello do_stuff >/dev/null 2>&1
p1033     607676  0.0  0.0 295656 17400 ?        S    23:42   0:00 php /home/xxxx/public_html/bin/cake.php hello do_stuff 

一段时间后,命令的另一个副本由cron启动,它也保留在内存中,直到服务器的所有者杀死他们。

我尝试运行这样的简单 php 脚本

for ($i = 0; $i < 10; $i++) sleep(1);

我看到它出现在进程列表中并在 10 秒后消失。

那么,谁能告诉我我用 cakephp 做错了什么?我应该怎么做才能防止进程在作业完成后保留在内存中?

这是关于长 sql 脚本的。死锁或类似的东西。