Subject: Re: jobs output from /bin/sh
To: None <tech-userlevel@netbsd.org>
From: Christos Zoulas <christos@zoulas.com>
List: tech-userlevel
Date: 10/17/2002 17:41:20
In article <20021017182830.A17947@snowdrop.l8s.co.uk>,
David Laight <david@l8s.co.uk> wrote:

Yup, that looks fine to me. I was always annoyed by the extra jobs messages.

christos

>I've been fixing /bin/sh so that the output from 'jobs' obeys the
>posix rules <1>.  This is all ok until you come to the job status that
>is written out when a job stops running - posix requires the output,
>but doesn't specify the format!
>
>There are three (at least) places when the output is required:
>1) when a job is stopped (eg by typing ^Z)
>2) when an asynchronous job terminates
>3) when a synchronous job exits from a signal (except INT or PIPE)
>
>Testing with commands like 'sleep 30 | sleep 20 | sleep 30', and
>doing a 'kill -quit' on the pid of the 'sleep 20' shows that:
>
>The netbsd /bin/sh outputs (in each case):
>1) '%1 Suspended' once for each process in the job
>2) '[1] <pid> Exit 0   <command line>', one line per process
>3) 'Quit - core dumped' when the process exits (not when job is done)
>
>Now it seems to be that the output should always be in the form
>required by posix (like (2) above), so the output would be:
>1) '[1] + Suspended               sleep 30 | sleep 20 | sleep 30'
>2) '[1]   Done                    sleep 30 | sleep 20 | sleep 30'
>3) '[1]   Quit (core dumped)  <command>' for a single process,
>   '[1]   Done                    sleep 30 |
>	  Quit (core dumped)      sleep 20 |
>	  Done                    sleep 30'
>    for the suggested pipeline.
>
>This ought to make it much easier to determine which command
>has generated a core dump...
>
>Apart from the change to the 'core dump' (etc) output, these
>changes are equivalent to the output from (pd)ksh.
>
>Is this all a good idea?
>
>	David
>
><1> also fixing %+ and %- as job identifiers.
>
>-- 
>David Laight: david@l8s.co.uk