On 2014-11-05 15:14, Theodore Ts'o wrote: > On Wed, Nov 05, 2014 at 02:31:12PM -0500, Austin S Hemmelgarn wrote: >>> >>> 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 >>> >>> 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. > 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. Ironically, the magic-sysrq key is one of the big reasons I've personally chosen to stay with Linux over any of the BSD derivatives. :)