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 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! For exampleFirst 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. |
|||||||||||||
|
|
look at:
for example:
|
|||||
|
|
This worked for me:
Anything typed in either "session" will happen in both "sessions", so for example typing |
||||
|
|
|
Another approach is to use the gnu This is a handy because nothing extra needs to be installed on the remote machine. |
|||
|
|
|
Since I didn't start tty1 with screen this script helped: I used the answer from Baard Kopperud above. "128" is 1 line of my tty1. Sleep can be set to an appropriate number.
I used this in terminator and sized the column so the scroll is one line of text. |
|||||
|
|
Use the
Assuming these TTYs, to redirect the first's stdout to the second, run this in the first terminal:
To restore default behavior stdout of pts/0:
See this video for a demonstration. |
||||
|
|
screenortmuxbefore starting a command that you may want to access from another terminal. – depquid Apr 14 '13 at 20:33