/ / Стартиране на Unix процес във фонов режим от php [дублиране] - php, shell, unix

Стартиращ unix процес на фона от php [duplicate] - php, shell, unix

Ако изпълнявам тази 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 гарантира, че подпроцесът не се връща, докато детето не напусне.