Re: Four questions about examples of GNU Screen use

Axel Beckert <[email protected]>
Newsgroups gmane.comp.gnu.screen.user
Organization DeuxChevaux.org -- The Citr oën 2CV Database
Message-ID <[email protected]>
Hi Lars,

On Sat, Mar 05, 2016 at 08:23:42PM +0200, Lars Noodén wrote:
> 1) Here screen(1) is launched.
> 
>   ssh -l fred server.example.org screen

ssh lacks a -t option in this example (and the next one). Screen needs
a (pseudo) terminal.

> Once a screen(1) session is running, it is possible to detach it and
> close the SSH connection without disturbing the background processes it
> may be running. Then the terminal session can be reattached in progress.
> 
>   ssh -l fred server.example.org "screen -x"

"screen -x" works, but is probably not what most people use as it
connects to a screen session in addition to existing clients which
often restricts one of the clients to a smaller terminal than
available for him.

I usually use "screen -dr" for that:

-d = detach an attached session
-r = reattach the session here

What I do is usually

ssh -l fred server.example.org screen -Rd

-R = reattach if a session exists or creates a new session if no
     session exists.

That way you only need one command for both purposes listed above.
This is especially nice for making shell aliases or so.


> 2) Here ssh(1) is to assume that the connection is broken after 5
> seconds of not being able to reach the server and to exit.
> 
>  while ! ssh -t [email protected] -o 'ServerAliveInterval 5' \
>    screen -d -RR; do true; done

There's a nice tool which does this a little bit more intelligent:
http://www.harding.motd.ca/autossh/

Combined with the above, I use it in a shell function like this:

asc () {
        print -Pn "\e]0;%n@%m: autossh -t $* 'screen -RdU'\a"
        autossh -x -t "$@" 'screen -RdU'
}

asc stands for "autossh + screen"

I.e. I just call "asc [email protected]" and I do get a screen
session, either an existing one or a fresh one. In production for like
5 years now on a daily base -- also helps to survive setting the
laptop to sleep and waking it up at a different location with a
differnt IP address.

(And yes, there's also mosh. But the above has also the advance that I
can add any port forwardings or other SSH options and they're used
upon every reinstantiation of the connection again.)

HTH.

		Kind regards, Axel
-- 
/~\  Plain Text Ribbon Campaign                   | Axel Beckert
\ /  Say No to HTML in E-Mail and News            | [email protected]  (Mail)
 X   See http://www.nonhtmlmail.org/campaign.html | [email protected] (Mail+Jabber)
/ \  I love long mails: http://email.is-not-s.ms/ | http://abe.noone.org/ (Web)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.