On 06Jun2014 13:17, Rick Stevens ricks@alldigital.com wrote:
As you can see, there's nothing special about this. And yeah, when runs as foo.php & << it shows up in the procTBL as "T" in the status.
There are no filedescriptors in the test.
It has at least one descriptor, stdout. You're having it print two lines. If you background it, it's going to hang trying to print out to stdout.
Try "php foo.php >/dev/null 2>&1 &" to make it write stdout and stderr to /dev/null and see if that works.
Normally a background process can write to the tty. IIRC, that might be tunable. More common is to stop when it reads from the tty. Eg:
% read it & [1] 71654 [1] + 71654 suspended (tty input) read it %
That's zsh. Bash does the same thing but looks like this:
% read it& [1] 72595 [1]+ Stopped(SIGTTIN) read it %
The other thing to try it strace. Look up the PID of your process. (Suppose it is 13.) Then:
strace -p 13
The should tell you what system call it was making when it was suspended, and what file descriptors were involved.
Cheers, Cameron Simpson cs@zip.com.au
It is easier to optimize correct code than to correct optimized code. - Bill Harlan