У меня есть код php:
<?
$cmd="mkfifo /tmp/myfifo;";
system($cmd);
$cmd="echo 1 > /tmp/myfifo 2>&1 &";
system($cmd);
?>
на сервере apache. Я хочу, чтобы вторая команда не блокировала. По данным информационной страницы системы:
If a program is started with this function, in order for it to continue running
in the background, the output of the program must be redirected to a file or
another output stream. Failing to do so will cause PHP to hang until the execution
of the program ends.
Но я не понимаю, как применить это к этой ситуации. Я пытался
$cmd="echo 1 > /tmp/myfifo > /dev/null 2>&1 &";
Но, честно говоря, это кажется бессмысленным.
РЕДАКТИРОВАТЬ:
Моя конечная цель - записать в fifo, который никогда не будет считан, и установить время ожидания записи через 5 секунд. Итак, если мне удастся заставить эту команду не блокировать выполнение php, я могу спать 5 секунд, а затем cat / tmp / myfifo> / dev / null 2> & 1, чтобы разблокировать исходную запись.
Может кто-нибудь придумать лучший способ, чтобы моя запись не зависала бесконечно (ни на заднем плане, ни на переднем плане)?