У нас есть две команды symfony в нашем проекте: одна, которая запускается crontab, и другая, которая запускается первой (так что электронные письма отправляются пакетами), например так:
Проблема в том, что процесс, запускаемый crontab, никогда не закрывается, он продолжает работать на сервере до тех пор, пока оперативная память не заполнится (cron запускается каждые два часа), даже если код завершает работу (отправляются все электронные письма).
Мы попытались добавить опцию тайм-аута в 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
Любые идеи будут действительно соответствовать
Задача ещё не решена.
Других решений пока нет …