Commit graph

47 commits

Author SHA1 Message Date
Gleb Kurtsou 9b33705411 Adjust printf format specifiers for dev_t and ino_t in user space.
ino_t and dev_t are about to become uint64_t.

Reviewed by:	kib, mckusick
2014-12-17 07:10:48 +00:00
Christian S.J. Peron 6f17dec9a1 Re-work r260800 to include other signals which start with 'I'
such as ILL, INFO etc..

Submitted by:	delphij
MFC after:	2 weeks
2014-01-17 04:16:39 +00:00
Christian S.J. Peron dedf0f34ad fix a regression introduced in r237618 that would result in
killall confusing killall -INT with killall -I (interactive
confirmation) which resulted in the wrong signal (TERM)
being delivered to the process(s).

Discussed with:	delphij
MFC after:	2 weeks
2014-01-17 03:30:24 +00:00
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