Ако изпълнявам тази UNIX команда директно в shell:
$ sleep 100 &
sleep работи във фонов режим, както се очаква, и мога да продължа да работя в командния ред.
но опитвайки едно и също нещо с shell_exec () и php получавам различни резултати.
<?php
$sleep = $argv[1];
$shell="sleep " . $sleep . " &";
shell_exec($shell);
?>
когато се изпълнява php sleep.php 100
командния ред виси и няма да приема повече команди, докато сънът приключи. Не съм сигурен дали това е нюанс, с който ми липсва shell_exec()
/ $argv
на php или с Unix shell.
Благодаря.
Отговори:
3 за отговор № 1Най- shell_exec
функцията се опитва да улови изхода на командата, която не може да направи, докато едновременно с това продължава обработката. shell_exec
функцията a popen
C повикване, което прави a wait
извикайте командата. wait
гарантира, че подпроцесът не се връща, докато детето не напусне.