I need to hook onto output of currently running terminal (tty1) from virtual terminal and capture it (running X server).
I'm pretty sure such a thing is possible by simpler means than debugging (result of my Google searches).
Can anyone help?
I came across this one tool called
But it works!
First ssh into your box in TERM#1:
Note this new terminal's tty:
Now in another terminal (TERM#2) run this command:
Now go back to TERM#1 and type stuff, it'll show up in TERM#2.
All the commands I tried, (top, ls, etc.) worked without incident using
Indeed it is. The /dev/vcs* and /dev/vcsa* devices corresponds to the /dev/tty* devices (the virtual terminals). F1=tty1=vcs1/vcsa1 and so on. The vcs/vcsa is like tty for the "current" virtual terminal.
As root, you can just cat these devices (e.g. cat /dev/vcs2), and see what's on the corresponding VT (e.g. /dev/tty2 the on on F2) like taking a snapshot. vcsa* differs from vcs* in that they include information about the dimensions of the terminal (the screen). Mind you, it's just a raw snapshot of the characters as they show on the screen - gathered from the memory allocated to the terminal - so don't expect nice, easily parseble output.
The drawback is that if the information flashes past too fast, it may be difficult to capture. Perhaps tail -f /dev/vcs1 will work, if you need to follow several screenfulls (haven't tried myself)? It may be easiest to simply redirect it to a file first. It may also be a good idea to use a VT (F1-F6) to look at it, as the terminals will have the same dimensions. In my experience, it's best to use the vcs* - not the vcsa* - devices.
If that doesn't work, perhaps one of the "big brotherish" packages that allows an admin to keep an eye on the activity on a terminal may work.
PS: I forgot to ask what OS you use. This is for Linux, though similar devices probably exists on other OSes too. Try searching for "virtual console memory" among the man-pages for devices.