我们的项目中有两个symfony命令:一个由crontab触发,另一个由第一个命令触发(这样就可以批量发送电子邮件),如下所示:
问题是crontab触发的进程永远不会关闭,它们会一直在服务器上运行,直到RAM内存已满(每两小时触发一次crons),即使代码完成运行(所有电子邮件都在运行)发送)。
我们已尝试在crontab中添加超时选项,但这似乎也不起作用。
在crontab中,命令为:
0 */2 * * * root /usr/bin/timeout 5400 /path/to/symfony/console mycron:trigger
这是服务器上的进程列表(正如您所看到的,即使超时应为5400秒,进程仍处于活动状态超过17小时):
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12231 apache 20 0 754m 414m 9544 S 0.0 5.6 17:11.74 php-fpm
12224 apache 20 0 754m 414m 9588 S 0.0 5.6 18:00.81 php-fpm
12267 apache 20 0 725m 385m 9580 S 0.0 5.3 14:30.35 php-fpm
12300 apache 20 0 725m 384m 9536 S 0.0 5.2 15:42.68 php-fpm
12338 apache 20 0 717m 377m 9556 S 0.0 5.1 14:11.93 php-fpm
任何想法都会真的被指定