2010-11-16 16 views
5

Windows için böyle bir şey var mı?Pencerelerde nohup, bitiş beklemeden exec

exec("nohup /usr/bin/php -f sleep.php > /dev/null 2>&1 &"); 
+0

http://serverfault.com/questions/39451/there-is-any-way-to-run-processes-in-the-background-in-windows-nohup-equivalent – ajreal

cevap

19

O ... sadece WScript.Shell COM nesnesi kullanmak gerekir (bazı küçük farklılıklar ile de olsa) değil zor: Varsayılan olarak

+0

com_exception alma? – Marcin

+0

İstisna nedir? 'Try {$ shell ...} catch (Exception $ e) {var_dump ($ e-> getMessage(), $ e-> getCode()); neye sebep olduğunu görmek için ... – ircmaxell

+0

getting: Üye bulunamadı – Marcin

1

... bu kadar

$shell = new COM("WScript.Shell"); 
$shell->run($command, 0, false); 

, Windows komutu start, alt işlem için beklemez. Komut İstemi penceresi oluşturulmasını önlemek için /b anahtarının geçişini isteyebilirsiniz.

exec("start /b c:\\php\\php.exe -f sleep.php"); 
+1

Tamamen doğru değil. [Başlamadaki dokümanlar] 'a göre (http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/start.mspx?mfr=true): sadece GUI işlemini başlatıyorsanız bekleyin. Bir konsol işlemi başlatıyorsanız (en azından XP için söylediği şey) bekler ... – ircmaxell

+0

ve bu doğrudur – Marcin