我升级到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$
如您所见,服务器立即停止。
答案 0 :(得分:3)
当进程设置为在后台运行时(使用&
运算符),它无法再写入终端。生成SIGTTOU
信号,其默认操作是终止该过程,因为它不再能够写入stdout
。
通过将stdout
重定向到可写的地方,我们可以确保没有SIGTTOU
信号,并且没有终止该过程。
php -S localhost:3000 -t public/ 1>/dev/null &
1>
表示stdout
,而2>
表示stderr
,用于表示错误。可以使用&>
将两者重定向到文件或伪设备。