Мне нужно запустить команду в PHP следующим образом:
exec('dosomething > saveit.txt');
Кроме того, я не хочу, чтобы PHP дождался завершения. Я также не хочу выбрасывать вывод, и я не хочу использовать nohup, потому что я использую это для чего-то еще в том же каталоге.
Я также попробовал pclose(popen('dosomething > saveit.txt','r'));
и это не сработало, оно все еще ждало.
Добавьте амперсанд в конец команды, так что:
exec('dosomething > saveit.txt &');
в документации exec()
есть интересный комментарий, в котором говорится:
Понадобилось достаточно времени, чтобы выяснить, какую строку я буду размещать дальше. Если вы хотите выполнить команду в фоновом режиме, не ожидая результата в сценарии, вы можете сделать следующее:
<?php passthru("/usr/bin/php /path/to/script.php ".$argv_parameter." >> /path/to/log_file.log 2>&1 &"); ?>