After using just plain
kill <some_pid> on Unix systems for many years, I learned
pkill from a younger Linux-savvy
I soon accepted the Linux-way,
pkill-ing through many days and nights, through slow-downs and race conditions. This was all well and good.
But now I see nothing but
killall. How-to's seem to only mention
killall, and I'm not sure if this is some kind of parallel development, or if
killall is a successor to
pkill, or something else.
It seems to function as a more targeted
pkill, but I'm sure I'm missing something.
Can an Ubuntu/Debian-savvy2 person explain when (or why)
killall should be used, especially if it should be used in preference to
pkill often seems easier, because I can be sloppier with name matching, at least by default).
When speaking of
killall, I'm not thinking of the command that on some Unix systems (Solaris, AIX, ?) would kill all user processes. Here's a description of that version, from a manpage for IBM's AIX:
The killall command cancels all processes that you started, except those producing the killall process. This command provides a convenient means of canceling all processes created by the shell that you control. When started by a root user, the killall command cancels all cancellable processes except those processes that started it. If several Signals are specified, only the last one is effective.
1 'colleague' is free upgrade from 'co-worker', so might as well.
2 Originally I thought this was a Linux or Debian thing, but some sources are saying that the Linux
killall is derived from BSD-flavored Unix.