On Wed, Nov 05, 2014 at 02:31:12PM -0500, Austin S Hemmelgarn wrote:I hadn't realized that it was actually the kernel printing that, but then I've never really looked all that deep into the BSD source code.
SIGINFO prints the status of the process to the terminal; BSD cp, for example,
shows show much data it's copied:
$ cp large_file /dev/null
<press ^t>
load: 1.39 cmd: cp 85837 [running] 3.91r 0.00u 0.98s 8% 2340k
large_file -> /dev/null 15%
As you see, it shows the current load, pid, process status, memory usage, as
well as how much of the file has been copied. Many other BSD tools print similar
statistics (mv, tar, dd, sleep, fetch, etc.).
You have to understand however, that the reason that SIGINFO works like that
on *BSD is that the kernel and core userspace are developed together,
whereas on Linux, they are maintained entirely separately. Outside of core
userspace components, using SIGINFO that way on *BSD is just convention.
Actually, the first line:
load: 1.39 cmd: cp 85837 [running] 3.91r 0.00u 0.98s 8% 2340k
is actually printed by the kernel. It's actually something which is
implemented in the BSD N_TTY line displine. We never implemented it
(at least when I was maintaining the tty subsystem) mostly out of
laziness. Part of the reason is that the main reason was that main
reason why people (at least systems programmers / kernel programers
like me) used ^T was to debug an apparently hung system, and for
Linux, we had a much more powerful system using the magic-sysrq key.
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature