background - "stopped" how to kill!

Cameron Simpson cs at zip.com.au
Fri Jun 6 21:56:12 UTC 2014


On 06Jun2014 13:17, Rick Stevens <ricks at 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 at zip.com.au>

It is easier to optimize correct code than to correct optimized code.
- Bill Harlan


More information about the users mailing list