Usando strace
, vejo que o programa está recebendo um sinal SIGTTOU
, o que significa que o processo estava em segundo plano e tentou gravar no terminal ou, neste caso, alterar um de seus modos.
ioctl(0, SNDCTL_TMR_STOP or SNDRV_TIMER_IOCTL_GINFO or TCSETSW, {B38400 opost isig icanon echo ...}) = ? ERESTARTSYS (To be restarted if SA_RESTART is set)
--- SIGTTOU {si_signo=SIGTTOU, si_code=SI_KERNEL} ---
--- stopped by SIGTTOU ---
Para contornar isso, defina a entrada para null:
$ php x.php < /dev/null &
A pergunta é a mesma que esta: O script PHP não será executado no fundo