Асинхронный вызов оболочки Linux из PHP не работает

Я застрял с проблемой асинхронного вызова оболочки (из PHP), который просто не является асинхронным, даже если так и должно быть.

exec("nohup sudo -H -u ubuntu /usr/local/bin/purge.sh $purgeString &> /dev/null &");

Приведенный выше скрипт выполняется примерно 17 раз в этом типе запроса, поэтому параллельные операции здесь обязательны!

БЕЗ вышеуказанной операции (закомментированной) запрос занимает около 4 секунд. С помощью описанной выше операции это занимает более 15 секунд, что определенно означает, что асинхронная часть не работает.

purge.sh записывает свой прогресс в файл журнала, и я могу следить за журналом и видеть, что записи поступают медленно и последовательно из каждой из 17 операций.

Я перепробовал все решения в Асинхронная оболочка в PHP и имели нулевой успех.

[БОЛЬШЕ ИНФОРМАЦИИ] —
Я могу запустить команду вручную в оболочке, как другой пользователь, и она работает как положено. Права доступа к файлам и папкам также должны быть проверены.

У кого-нибудь есть понимание того, что может быть не так?

ОС: Ubuntu 14.04, PHP: 7.08, веб-сервер: NGINX 1.11.2.

РЕДАКТИРОВАТЬ
Мы отказались от этого подхода. Но если кто-нибудь ответит, я все равно отмечу правильный ответ.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]