Commit Graph

44 Commits

Author SHA1 Message Date
Mateusz Guzik
214e08782b killall: add -q flag to suppress error message when no processes are matched
Man-page text provided by wblock.

PR:		bin/30542
Submitted by:	Tony Finch <dot@dotat.at> (original version)
MFC after:	1 week
2013-06-30 20:27:31 +00:00
Konstantin Belousov
c517bc1502 Once in a month, when the moon is full, killall mistakenly considers
living process as a zombie and refuses to kill it. The cause is that
the code masks ki_stat with SZOMB to compare with SZOMB, but ki_stat
is not a mask.

Possibly reported by:	cperciva
MFC after:	3 days
2012-06-30 16:36:22 +00:00
Konstantin Belousov
407e615c68 killall(1) does not use libkvm.
MFC after:	3 days
2012-06-30 16:23:08 +00:00
Konstantin Belousov
a488a0f1d2 Only initialize array of mibs once.
MFC after:	3 days
2012-06-30 16:21:51 +00:00
Konstantin Belousov
40bcb503f1 Initialize procs closer to the place were it is used.
Free can properly handle NULL pointer (but keep free() call on the premise
that the code might be reused).
Show errno when realloc failed.

MFC after:	3 days
2012-06-30 16:20:01 +00:00
Xin LI
8d5ec3937c Add a -I flag which requests confirmation before action, like what is done
in pkill(1).

MFC after:	2 weeks
2012-06-27 00:50:25 +00:00
Jilles Tjoelker
de55508483 Simplify various code that allowed for sys_signame being lower case.
This was changed in r218285.
2011-03-06 19:50:47 +00:00
Jilles Tjoelker
12dacf622b Make sys_signame upper case.
This matches the constants from <signal.h> with 'SIG' removed, which POSIX
requires kill and trap to accept and 'kill -l' to write.

'kill -l', 'trap', 'trap -l' output is now upper case.

In Turkish locales, signal names with an upper case 'I' are now accepted,
while signal names with a lower case 'i' are no longer accepted, and the
output of 'killall -l' now contains proper capital 'I' without dot instead
of a dotted capital 'I'.
2011-02-04 16:40:50 +00:00
Xin LI
821df508e8 Revert most part of 200420 as requested, as more review and polish is
needed.
2009-12-13 03:14:06 +00:00
Xin LI
6f2d322192 Remove unneeded header includes from usr.bin/ except contributed code.
Tested with:	make universe
2009-12-11 23:35:38 +00:00
Jamie Gritton
de6f37045c Add libjail, a (somewhat) simpler interface to the jail_set and jail_get
system calls and the security.jail.param sysctls.

Approved by:	bz (mentor)
2009-06-24 18:18:35 +00:00
Jamie Gritton
73d0971bf2 Add support for the arbitrary named jail parameters used by jail_set(2)
and jail_get(2).  Jail(8) can now create jails using a "name=value"
format instead of just specifying a limited set of fixed parameters; it
can also modify parameters of existing jails.  Jls(8) can display all
parameters of jails, or a specified set of parameters.  The available
parameters are gathered from the kernel, and not hard-coded into these
programs.

Small patches on killall(1) and jexec(8) to support jail names with
jail_get(2).

Approved by:	bz (mentor)
2009-05-27 14:30:26 +00:00
Xin LI
5c13cfe080 Use strlcpy() where appropriate. 2008-11-19 00:14:15 +00:00
Ruslan Ermilov
b8272c9193 Fix numerous bugs when parsing options and arguments. 2007-11-09 15:14:08 +00:00
Maxim Konovalov
79d0f70f09 The signal number has to be less than NSIG strictly.
PR:		misc/69768
Submitted by:	bronek
MFC after:	1 week
2004-07-29 18:36:35 +00:00
Tim J. Robbins
fe1ba53cff Don't pass negative values into <ctype.h> functions on machines
with signed chars.
2004-07-15 07:33:56 +00:00
Tim J. Robbins
ee6b783c62 Print size_t with %zu, not %d. 2004-07-15 07:30:15 +00:00
Tim J. Robbins
c5453cb4db Respect locale settings from the environment. 2004-07-15 07:26:20 +00:00
Diomidis Spinellis
5aa41214a8 New -e flag, modifies the behavior of the -u uid flag to use the
effective user id, instead of the real user id.

MFC after:	2 weeks
2004-01-26 11:11:36 +00:00
Colin Percival
b4e148e9ff Serial murderers shouldn't commit suicide. (killall should
avoid killing itself.)

PR: bin/46107
Submitted by: stacey <stacey_@starwhack.net>
2004-01-22 20:56:06 +00:00
Maxim Konovalov
6dcfd34771 o Sync usage() and man page synopsis with reality.
MFC after:	1 week
2004-01-18 17:49:25 +00:00
Tim J. Robbins
f2dd06ab16 Use the 3-component version of the KERN_PROC_PROC sysctl. 2003-09-27 08:14:37 +00:00
Tim J. Robbins
2c801d3d5f Use KERN_PROC_PROC instead of KERN_PROC_ALL when enumerating processes so
that we kill each process once, not once for every thread it owns. This
avoids "No such process" warnings when killing threaded processes.
2003-09-07 09:13:44 +00:00
Warner Losh
6a31ec40cb make "killall -j" not core dump.
Submitted by: Joe Marcus Clarke in current@
2003-04-27 07:17:27 +00:00
Mike Barcroft
ebf5d9bc2c o Add jls(8) for listing active jails.
o Add jexec(8) to execute a command in an existing jail.
o Add -j option for killall(1) to kill all processes in a specified
  jail.
o Add -i option to jail(8) to output jail ID of newly created jail.
2003-04-09 03:04:12 +00:00
Philippe Charnier
aaa9487d53 Header was included twice. Hardcode program name in usage string. 2003-02-05 14:20:27 +00:00
David E. O'Brien
e026a48c34 Consistently use FBSDID 2002-06-30 05:25:07 +00:00
Dima Dorfman
a79a73ab1b Mark a warning as such. Without this, it isn't obvious whether
killall stopped after failing to kill one process or whether it kept
going.
2002-05-20 07:17:22 +00:00
Dag-Erling Smørgrav
a2fefc8d1d Skip zombies. Add an option (-z) to revert to the historical behaviour
of trying to kill zombies (which has no effect except emit a few error
messages)
2002-04-14 22:25:57 +00:00
David Malone
fb757ee269 Use the method described in the strtol man page to check if it parsed
the entire string.  This avoids signed/unsigned comparison.
2002-03-30 16:24:03 +00:00
Bruce Evans
6eabd84580 Compensate for "Compensate for header dethreading" by backing it out. 2001-10-10 17:48:44 +00:00
David E. O'Brien
0d1b691ed7 Allow -u to work with UID's also.
Submitted by:	Seth Kingsley <seth.kingsley@windriver.com>
2001-06-12 15:58:31 +00:00
Poul-Henning Kamp
49a4598b61 Fix an array which was too small.
PR:		27380
Submitted by:	Samuel Greear <sgreear@vsni.com>
2001-05-16 11:13:16 +00:00
Mark Murray
6e547eabb8 Compensate for header dethreading. 2001-05-01 08:46:02 +00:00
Peter Wemm
69179c1439 Work around the p_comm[] size limit. If the user supplies more than
16 characters, only check the first 16 since that is all the kernel
records.  This isn't ideal, but it is probably the best we can do.
Otherwise, "killall communicator-linux-4.76.bin" will not match
the process as the kernel only records "communicator-lin".
2001-02-14 21:56:03 +00:00
Andrey A. Chernov
6e1dea0642 Make "killall -t p0" really works.
Old code works only if at least one process name additionly specified.
2001-01-21 01:03:31 +00:00
Paul Saab
88522a2e3a Use the real user ID so non-root users can kill setuid processes
they started.

PR:		23356
Submitted by:	Maxim Konovalov <maxim@macomnet.ru>
2000-12-25 19:26:07 +00:00
John Baldwin
93480bce7c Catch up to the new kinfo_proc. 2000-12-12 23:31:44 +00:00
Paul Saab
ecc50bd485 -U cannot be an option since some signals start with U. -u is the
documented behavior so only check for that.
2000-11-12 07:43:50 +00:00
Peter Wemm
8750ed5f77 After positive feedback from a few folks, activate a switchover to
using killall.c instead of the perl version that depends on procfs.
The C version uses sysctl().  The program is based on a hack that was
originally written about 6 years ago and has evolved somewhat since then.
(which is why it is a superset of killall.pl, rather than being a clone.)

With apologies to: wosch
2000-08-28 22:09:38 +00:00
Peter Wemm
e1669132dc Try and fix up some bogus indentation leftovers from emacs several
years ago.
2000-08-27 02:12:29 +00:00
Peter Wemm
a03884671d Sigh, today is not my day. Convert a verbose while() .. loop into a for()
loop.

Submitted by:	billf
2000-08-27 01:17:11 +00:00
Peter Wemm
a6b474b6c1 *blush*. I was *sure* I compiled this after the last change..
Add the missing )

Shamed by:	billf
2000-08-27 01:10:55 +00:00
Peter Wemm
1198f21caf killall.c is meant to be a superset replacement of killall.pl, the
main difference is that it uses sysctl to get the process lists rather
than /proc - thereby reducing the dependency on /proc by one more tool.
2000-08-27 00:46:25 +00:00