How does one view the terminal (tty) output externally? (Not a new ssh session, but what is currently going on)

5,888

Solution 1

try screen:

Logon to a Terminal and type apt-get install screen to install it.
Start screen by typing screen.
Tap Enter to get past the welcome screen.
start a process, for example a slow download:

curl --limit-rate 5K \
http://archive.raspbian.org/raspbian/dists/wheezy/main/binary-armhf/Packages

Press ^ad - Ctrl+a (Release Buttons) d - to detach.
Close the terminal.
logon as the same user (via SSH if you like) and type screen -r to resume.

screen can do a lot more, check out man screen.

As a side note, if you want your process to start on boot you should consider using an init script and make your process write logfiles.

Solution 2

As far as I know, there is no way of observing the output of a command run in a separate shell. Each shell (bash , for example) instance is a separate entity and you cannot communicate with it from a different shell.

The only way to monitor output would be to have your command save its progress in a file and then monitoring that file. For example, on the Pi:

some_command > some_file

or, to monitor standard error instead of standard output:

some_command 2> some_file

You can then watch the progress from another computer by running

ssh user@pi tail -f /path/to/some_file
Share:
5,888

Related videos on Youtube

Elliot Reed
Author by

Elliot Reed

Software Developer / DevOps Engineer based in Nottingham in the United Kingdom.

Updated on September 18, 2022

Comments

  • Elliot Reed
    Elliot Reed over 1 year

    Basically I've set up a few Raspberry Pis running different programmes, and I'd like to see what is being outputted on them. I can obviously connect via SSH, but that's a new tty session. Tried googling it, but I think my terminology is a little odd!

    • terdon
      terdon over 10 years
      Your terminology is a little odd yes :). Could you give an example so we can understand what you mean?
    • Elliot Reed
      Elliot Reed over 10 years
      So I've got a Bash script running on the Raspberry Pi, and I want to remote login and view the output of that Bash script remotely. The Bash script is requiring user input on the Raspberry Pi. Like when I access via SSH it's a new session, rather than monitoring what's happening on the physical device..
    • Ярослав Рахматуллин
      Ярослав Рахматуллин over 10 years
      Look for "process standard output" or "proc linux stdout" (eg see here). This is also relevant (monitoring a terminal).
    • SlightlyCuban
      SlightlyCuban over 10 years
      If you're running something interactive, you might want to start it in a screen session: superuser.com/a/454914/223699. You could then attach to the screen to see what is going on.
  • Elliot Reed
    Elliot Reed about 7 years
    Four years later and I've accepted this (apologies for being somewhat late!). Thanks to you however I now use screen all the time :)
  • Florian Fida
    Florian Fida over 2 years
    5 years after that i read your comment :D - i switched to tmux in recent years. if you like screen i would recommend trying it