exec в windows (запуск ехе в фон)

b0bah1

Новичок
exec в windows (запуск ехе в фон)

Есть консольная программа console.exe
Требуется в Windows запустить ее в фон, и не ждать завершния ее работы.
console.exe - ничего не выводит в консоль.
Искал на форуме ответ на данный вопрос, нашел несколько примеров, но они не работали.
PHP ждал завершения выполнения console.exe, а уж потом возвращался к работе скрипта.
 

DiMA

php.spb.ru
Команда форума
ты ни хрена не искал, т.к. я раз 10 писал про это

скачать "start.exe" (не пустать с start)
запустить start.exe php.exe -f ...
 

Gremboloid

инженера Гр...
напрямую запустить в Windows программу и не ждать завершения ее работы (не важно консольная она или нет) не получится.
для этого требуется надстройка в виде CMD интерпретатор команд.

в php смотри функцию exec
используй в консоли используй команду START /? и смотри описание.

самое простое создать bat файл и его уже запускать, а в батнике уже start с параметрами
 

DiMA

php.spb.ru
Команда форума
> напрямую запустить в Windows программу и не ждать завершения ее работы

Бред собачий, решение - выше. Еще могу порекомендовать собственную прогу runAfter.exe: выполнить команду шелла через несколько секунд. Очень удобно: запускаем через start.exe основной процесс, а через ранафтер - прибивалку, которая через нужное число секунд выполнится.

> в php смотри функцию exec

не нужно, проще system()

> используй в консоли используй команду START /? и смотри описание.
> самое простое создать bat файл и его уже запускать, а в батнике уже start с параметрами

Консольная *команда* Start не запускает ничего в фоновом режиме и для пхп совершенно бесполезна (строго говоря, чтобы исполнить команду start, хорошо бы cmd.exe запустить, но это делается автоматически). В отличии от программы start.exe, которую нужно скачать.
 

Активист

Активист
Команда форума
http://www.somacon.com/p395.php

-~{}~ 06.08.09 22:22:

Start background process using the WScript.Shell object
You can start the process using the Run method of the WScript.Shell object, which is built-in to Windows. By varying the second parameter, you can make the window hidden, visible, minimized, etc. By setting the third parameter to false, Run does not wait for the process to finish executing. This code only works on Windows.

$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run("cmd /C dir /S %windir%", 0, false);

Start background process using popen and pclose
This code should work on Linux and Windows.
pclose(popen("start \"bla\" \"" . $exe . "\" " . escapeshellarg($args), "r"));
Start background process with psexec
This method requires installing the freeware pstools from sysinternals:
exec("psexec -d blah.bat");
Start process without a window
This is not really for background processes, but worth mentioning. Use the windows start command with /B switch to hide the window.
exec('start /B "window_name" "path to your exe"',$output,$return);

Link to this page: <a href="http://www.somacon.com/p395.php">Executing background processes from PHP on Windows</a>
Читать тут: http://tinyurl.com/l9xvlr
 

SiMM

Новичок
> Нашел еще одно решение.
Вообще-то оно давно есть в мануале.
[m]function.exec#35731[/m]
[m]function.exec#86329[/m]
 
Сверху