current pids per tty

perryh at pluto.rain.com perryh at pluto.rain.com
Wed Apr 4 08:21:55 UTC 2012


"illoai at gmail.com" <illoai at gmail.com> wrote:

> (there is an executable named /usr/bin/jobs, but . . .
> well run "cat /usr/bin/jobs" & see for yourself).

Whoa!  Does /usr/bin/jobs even work?

  $ cat /usr/bin/jobs
  #!/bin/sh
  # $FreeBSD: src/usr.bin/alias/generic.sh,v 1.2.10.1.4.1 2010/06/14 02:09:06 kensmith Exp $
  # This file is in the public domain.
  builtin ${0##*/} ${1+"$@"}

It looks as if generic.sh intends to have the same effect as the
builtin matching the name under which the script is run, but at
least for "jobs" I don't think it will DTRT because it will run
in the wrong context:

* The builtin "jobs" command will report all background jobs known
  to the shell in which it is issued.

* Because it is a shebang script, running /usr/bin/jobs will cause
  the shell in which it is run to fork/exec an instance of /bin/sh,
  and that instance will execute the /usr/bin/jobs script, thus it
  will will be the new /bin/sh instance that executes _its_ builtin
  "jobs" command -- reporting nothing, since _that_ instance has not
  put anything into the background (and has no knowledge of what-all
  its parent shell may have put in the background).


More information about the freebsd-questions mailing list