如何在后台运行PHP内置服务器

时间:2014-02-12 08:43:36

标签: php

我升级到PHP 5.5,我不能再在后台运行服务器了。

ablock@desktop:~/site$ php -S localhost:3000 -t public/ &
[1] 9689
ablock@desktop:~/site$ 

[1]+  Stopped                 php -S localhost:3000 -t public/
ablock@desktop:~/site$

如您所见,服务器立即停止。

1 个答案:

答案 0 :(得分:3)

当进程设置为在后台运行时(使用&运算符),它无法再写入终端。生成SIGTTOU信号,其默认操作是终止该过程,因为它不再能够写入stdout

通过将stdout重定向到可写的地方,我们可以确保没有SIGTTOU信号,并且没有终止该过程。

php -S localhost:3000 -t public/ 1>/dev/null &

1>表示stdout,而2>表示stderr,用于表示错误。可以使用&>将两者重定向到文件或伪设备。