diff options
author | jilles <jilles@FreeBSD.org> | 2010-12-21 22:47:34 +0000 |
---|---|---|
committer | jilles <jilles@FreeBSD.org> | 2010-12-21 22:47:34 +0000 |
commit | ae2aabc34981e0a4fc74b41bde3cfd6ff4166022 (patch) | |
tree | 571f5b4935a3ac4f69aff2b5cfb327687b1f59fe /bin/sh/jobs.c | |
parent | 0a77d10ec99ee3d8cfd396b81e6fb1d1a9c4e1de (diff) | |
download | FreeBSD-src-ae2aabc34981e0a4fc74b41bde3cfd6ff4166022.zip FreeBSD-src-ae2aabc34981e0a4fc74b41bde3cfd6ff4166022.tar.gz |
sh: Add kill builtin.
This allows specifying a %job (which is equivalent to the corresponding
process group).
Additionally, it improves reliability of kill from sh in high-load
situations and ensures "kill" finds the correct utility regardless of PATH,
as required by POSIX (unless the undocumented %builtin mechanism is used).
Side effect: fatal errors (any error other than kill(2) failure) now return
exit status 2 instead of 1. (This is consistent with other sh builtins, but
not in NetBSD.)
Code size increases about 1K on i386.
Obtained from: NetBSD
Diffstat (limited to 'bin/sh/jobs.c')
-rw-r--r-- | bin/sh/jobs.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/bin/sh/jobs.c b/bin/sh/jobs.c index 6a781ea..fda167b 100644 --- a/bin/sh/jobs.c +++ b/bin/sh/jobs.c @@ -632,6 +632,14 @@ currentjob: if ((jp = getcurjob(NULL)) == NULL) } +pid_t +getjobpgrp(char *name) +{ + struct job *jp; + + jp = getjob(name); + return -jp->ps[0].pid; +} /* * Return a new job structure, |