[PATCH] jobs: Report creation of background jobs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Although it doesn't seem to be in POSIX it's relatively common
for interactive shells to report details of jobs run in the
background.  bash, ksh and tcsh report job id and pid while
the Bourne shell from Unix V7 reports only the pid.

This from bash:

   $ sleep 100 & sleep 200 &
   [1] 4626
   [2] 4627
   $ sleep 300 | sleep 400 &
   [3] 4636
   $ jobs -l
   [1]   4626 Running                 sleep 100 &
   [2]-  4627 Running                 sleep 200 &
   [3]+  4635 Running                 sleep 300
         4636                       | sleep 400 &

Unlike reporting of job completions such messages are not controlled
by 'set -m'.

ash has never supported reporting of the creation of background
jobs.  Add this feature to dash.

Signed-off-by: Ron Yorston <rmy@xxxxxxxxxxxx>
---
 src/jobs.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/jobs.c b/src/jobs.c
index f3b9ffc..4e0cdcc 100644
--- a/src/jobs.c
+++ b/src/jobs.c
@@ -932,6 +932,8 @@ static void forkparent(struct job *jp, union node *n, int mode, pid_t pid)
 	if (mode == FORK_BG) {
 		backgndpid = pid;		/* set $! */
 		set_curjob(jp, CUR_RUNNING);
+		if (iflag && jp && jp->nprocs == 0)
+			outfmt(out2, "[%d] %d\n", jobno(jp), pid);
 	}
 	if (jp) {
 		struct procstat *ps = &jp->ps[jp->nprocs++];
-- 
2.31.1




[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux