PHP exec wget + mysql komut sonuçları döndürmek için bekleyen asılı

1 Cevap php

İlgili: see here

Ben bu komutu var:

exec("(wget  -O http://domain/file.zip && mysql -u user -ppassword database -e \"UPDATE \\`table\\` SET \\`status\\` = 'live' WHERE \\`id\\` = '1234'\") & echo \$!");

Yukarıdaki komut, ancak PHP sonraki indirmek için üzerine gitmeden önce indirilmesini bitirmek için video için bekler, gayet iyi çalışıyor. Aşağıdaki satır, ancak, önceki hattan elde etmek çalışıyorum ne özgeçmişi indir gönderir.

exec("wget -O http://domain/file.zip &>/dev/null & echo \$!");

Nasıl arka plana indir göndermek için yukarıdaki ilk satırı değiştirme hakkında nasıl gidiyor?

1 Cevap

Eğer kullanmak ve yapmak zorunda arka süreci göndermek ve tüm çıktı yönlendirmek buna. Yani eklemeniz gerekir

> /dev/null 2>&1 &

komutunuzun sonunda. Yani böyle bir şey ile bitmelidir:

exec("(wget  -O http://domain/file.zip && mysql -u user -ppassword database -e \"UPDATE \\`table\\` SET \\`status\\` = 'live' WHERE \\`id\\` = '1234'\") echo \$! > /dev/null 2>&1 &");

[Düzenle]

Şey basit hale getirmek için, ayrıca exec ile diyebileceğim başka bir php dosyasına wget ve güncelleştirme taşıyabilirsiniz. Yani sadece ile sona ereceğini

exec("php NewFile.php > /dev/null 2>&1 &");