[comp.unix.questions] tty blocked in background job

rvp@softserver.canberra.edu.au (Rey Paulo) (05/29/91)

Whenever a job is run int the background and the job happens to write to the
tty from which it was run, the message "tty blocked" occurs.  This causes the
job to be suspended.  Is there any way that a background job's access to the
tty not blocked?
-- 
Rey V. Paulo                  | Internet:  rvp@csc.canberra.edu.au 
University of Canberra        | I am not bound to please thee with my answer. 
AUSTRALIA                     |         -Shylock, in "The Merchant of Venice" 
------------------------------+----------------------------------------------

art@pilikia.pegasus.com (Art Neilson) (05/30/91)

In article <1991May29.054939.11898@csc.canberra.edu.au> rvp@softserver.canberra.edu.au (Rey Paulo) writes:
>Whenever a job is run int the background and the job happens to write to the
>tty from which it was run, the message "tty blocked" occurs.  This causes the
>job to be suspended.  Is there any way that a background job's access to the
>tty not blocked?

Either run the job in the foreground or redirect the job's output
to a file before running the job in the background.
-- 
Arthur W. Neilson III		| INET: art@pilikia.pegasus.com
Bank of Hawaii Tech Support	| UUCP: uunet!ucsd!nosc!pilikia!art

kherron@ms.uky.edu (Kenneth Herron) (05/30/91)

In article <1991May29.054939.11898@csc.canberra.edu.au> rvp@softserver.canberra.edu.au (Rey Paulo) writes:
>Whenever a job is run int the background and the job happens to write to the
>tty from which it was run, the message "tty blocked" occurs.  This causes the
>job to be suspended.  Is there any way that a background job's access to the
>tty not blocked?

Try "stty -tostop".  If this doesn't work, read your stty(1) man page
to see if there's a different switch for this function.
-- 
Kenneth Herron                                            kherron@ms.uky.edu
University of Kentucky                                       +1 606 257 2975
Department of Mathematics       "So this won't be a total loss, can you make
         it so guys get to throw their mothers-in-law in?"  "Sure, why not?"

mouse@thunder.mcrcim.mcgill.edu (der Mouse) (06/02/91)

In article <1991May29.054939.11898@csc.canberra.edu.au>, rvp@softserver.canberra.edu.au (Rey Paulo) writes:

> Whenever a job is run int the background and the job happens to write
> to the tty from which it was run, the message "tty blocked" occurs.

Odd, which system and shell is this?  I don't know that message.

> This causes the job to be suspended.  Is there any way that a
> background job's access to the tty not blocked?

You don't say what your system is.  I'll describe BSD, simply because
that's the original breeding ground of background jobs and SIGTTOU....

There is a bit in the tty settings that controls this.  At the user
level, this is controlled with "stty tostop" and "stty -tostop".  At
the ioctl level, this is the LTOSTOP bit in the local mode word (the
thing manipulated with TIOCL{BIS,BIC,SET,GET}).

There are also some special cases, which may or may not be implemented
the same way in your system: if the process has SIGTTOU (the generated
signal) blocked or ignored, or if the process is a child process
running in its parent's memory during a vfork(), the output is
permitted and no SIGTTOU is generated.

					der Mouse

			old: mcgill-vision!mouse
			new: mouse@larry.mcrcim.mcgill.edu