Я создал скрипт, который использует psexec для вызова другого скрипта, который вызывает psexec для запуска моей командной строки.
Причина стольких вызовов psexec и других скриптов заключается исключительно в том, что мой PHP-скрипт не должен дождаться завершения процесса, прежде чем завершить его вывод в браузер.
Могу ли я сделать это без использования psexec? У меня проблемы с psexec, поэтому я бы просто полностью удалил его из своей программы.
Я запускаю Windows 2008
EDIT: Я изменил название, я думаю, это будет более точное название. Я узнал, что If a program is started with this function, in order for it to continue running in the background, the output of the program must be redirected to a file or another output stream. Failing to do so will cause PHP to hang until the execution of the program ends.
If a program is started with this function, in order for it to continue running in the background, the output of the program must be redirected to a file or another output stream. Failing to do so will cause PHP to hang until the execution of the program ends.
на странице php.net на exec()
, но не был уверен, как это сделать.
Включите перенаправление в командной строке:
exec('program.exe > NUL')
или вы можете изменить свою программу, чтобы явно закрыть стандартный вывод, в C это будет
CloseHandle(GetStdHandle(STD_OUTPUT_HANDLE));
Возможно (документация не говорит), что вам может потребоваться перенаправить / закрыть как стандартный вывод, так и стандартную ошибку:
exec('program.exe > NUL 2> NUL')
или
CloseHandle(GetStdHandle(STD_OUTPUT_HANDLE)); CloseHandle(GetStdHandle(STD_ERROR_HANDLE));
Попробуйте выполнить команду « start
» Windows: http://technet.microsoft.com/en-us/library/cc770297%28WS.10%29.aspx