Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What info does Ctrl-t show during a terminal "git push"?

Tags:

git

I run git from Mac OS X Terminal. During a long-running "git push" I accidentally hit ctrl-t, and some "load"-information showed up. I suppose it is some kind of information about the process running, but I cannot find documentation about it.

What does the information mean?

Example run:

danbj$ git push
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 503 bytes | 0 bytes/s, done.
Total 5 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
**load: 1.94  cmd: ssh 30002 waiting 0.01u 0.01s**
load: 2.11  cmd: ssh 30002 waiting 0.01u 0.01s
load: 2.11  cmd: ssh 30002 waiting 0.01u 0.01s
load: 2.10  cmd: ssh 30002 waiting 0.01u 0.01s
load: 2.10  cmd: ssh 30002 waiting 0.01u 0.01s
load: 2.09  cmd: ssh 30002 waiting 0.01u 0.01s
load: 2.09  cmd: ssh 30002 waiting 0.01u 0.01s
load: 2.08  cmd: ssh 30002 waiting 0.01u 0.01s
like image 786
Dan Bergh Johnsson Avatar asked Dec 19 '22 13:12

Dan Bergh Johnsson


1 Answers

Control-T on MacOS comes from BSD. It's the status character from stty settings:

$ stty -a
[snip]
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
    eol2 = <undef>; erase = ^H; intr = ^C; kill = ^X; lnext = ^V;
    min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
    stop = ^S; susp = ^Z; time = 0; werase = ^W;

and is documented in termios(4):

 STATUS  Special character on input and is recognized if the ICANON flag
         is set.  Receipt of this character causes a SIGINFO signal to be
         sent to the foreground process group of the terminal.  Also, if
         the NOKERNINFO flag is not set, it causes the kernel to write a
         status message to the terminal that displays the current load
         average, the name of the command in the foreground, its process
         ID, the symbolic wait channel, the number of user and system sec-
         onds used, the percentage of cpu the process is getting, and the
         resident set size of the process.

This status-printing, and the existence of the status character itself, is derived from code written by myself and Rehmi Post (with input from several others; Fred Blonder quite possibly had a hand in it, plus of course the grad students we had that came from Stanford and MIT) back when I was at the University of Maryland, in the mid-to-late 1980s. The SIGINFO signal and the NOKERNINFO control flag were added later, in the 1990s (or perhaps even a bit later).

(As I recall, ITS, TOPS-10, TOPS-20, and/or TENEX/TWENEX all had something like this. I never used any of those myself but that is where the idea came from.)

like image 136
torek Avatar answered Jan 12 '23 22:01

torek