忘掉它你怎麼發出來的shell命令,然後忘記它的輸出等?例如:發行的事情外殼和PHP
<?php
echo `sleep 2;echo hi`;
echo "foo";
?>
這樣做的結果是hifoo。我想要一個給我foohi的結果。爲什麼?我想要發佈到shell的命令只是發出和忘記,我很困惑爲什麼PHP會等待結果。這樣的結果可能嗎?
(這背後的想法是建立硒電網RC實例的正確數量的編程。目前,它就會停止第一個進程打開後)
忘掉它你怎麼發出來的shell命令,然後忘記它的輸出等?例如:發行的事情外殼和PHP
<?php
echo `sleep 2;echo hi`;
echo "foo";
?>
這樣做的結果是hifoo。我想要一個給我foohi的結果。爲什麼?我想要發佈到shell的命令只是發出和忘記,我很困惑爲什麼PHP會等待結果。這樣的結果可能嗎?
(這背後的想法是建立硒電網RC實例的正確數量的編程。目前,它就會停止第一個進程打開後)
它像什麼,你在命令提示符下執行的,除非你採取措施,把新的命令在後臺,外殼(和PHP)將阻塞,直到命令退出。試試這個:
<?php
echo `(sleep 2; echo hi) &`;
echo 'foo';
?>
注意圍繞你的命令的支架,不如此,&
woulud只適用於回聲,而且你還有2秒的暫停。
您分叉進程並殺死父進程,從而有效地進行守護進程。只要確保它在完成任務後退出。 – 2011-05-03 20:50:17
@ N.B .:注意需要關閉標準文件描述符才能讓父節點退出。 – Orbling 2011-05-03 20:53:12