Scrawls from Preston...

Powered by Pelican.

Fri 20 February 2009

Getting the Screen Religion

After reading this [excellent tutorial on using screen](, I've started to use it more especially when on remote ssh connections. I wanted a way to invoke it automatically whenever I logged in, but only for remote sessions (locally I still have multiple terminal windows...) To do this paste the snippet below into your .bash_profile on the remote machine. Be sure to set up a .screenrc file as described in the above link - it makes a huge difference.

What this does is check to see if you are remote (whoami ends with ( your IP)

Checks to see if there is one and only 1 screen session running - if so, resume - if more than one, list them. Otherwise create a new one. The reason I start screen with a named screen, in this case "start" is to bypass the intro screen that comes up otherwise.

AMREMOTE=`who am i | grep -c ")$"`if [ ! -z $AMREMOTE ]; then    SCREENS=`screen -list | head -1 | awk '{ print $1 }'`    if [ $SCREENS = 'No' ]; then        screen -t start    else         SCREENCOUNT=`screen -list | tail -2 | head -1 | awk '{ print $1 }'`        if [ $SCREENCOUNT -eq 1 ]; then            screen -r        else            screen -list        fi    fifi