Я пытаюсь обработать файл в фоновом режиме с помощью следующей команды, но ничего не делает.
exec("php csv.php $file $user > /dev/null &", $output);
Если я удалю > /dev/null &
то файл обрабатывает, но не в фоновом режиме.
exec("php csv.php $file $user", $output);
Есть идеи?
Заметка:
Если программа запускается с этой функцией, чтобы она продолжала работать в фоновом режиме, выход программы должен быть перенаправлен в файл или другой выходной поток. В противном случае PHP зависнет до завершения программы.
http://php.net/manual/en/function.exec.php
так:
exec("php csv.php $file $user > /dev/null &"); // no $output
Вы рассматривали использование экрана? Вы можете запустить сеанс экрана, который выполняется в отдельном процессе. Выход будет идти на сеанс экрана, который вы можете повторно подключить к другому терминалу, пока он все еще работает.
exec("screen -d -m -S my_php_session csv.php $file $user", $output);