Screen

Blink vient juste d’écrire un billet sur comment lancer une application à distance[en]

Blink has just written a post on how to run an application in linux without quitting from a remote[en]

He obviously uses nohup. But I recommend you the use of screen. If you don’t know how to use this, you can take a look at the Gentoo wiki, the tutorial is nice. There is also a nice post by liquidat on screen.
Anyway, in order to see how powerful it is: install it

sudo apt-get install screen

should work fine.
Then open 2 terminals. (I will call them T1 and T2).
In T1, type

screen -S toto

A new session of screen will start.
Write some stuff, like ls; echo toto.
Now in T2 type

screen -dR toto

And… That’s right, you have detached the screen session of T1 and attached it to T2 =)
In T1 type screen -ls to have a list of screen sessions, screen -d toto to detach the toto session from T2, screen -r toto to reattach it to T1, etc.
Type C-a : (ctrl+a then colon for command mode) quit. And you have close your toto session.

I will stop here, but I hope you have seen how powerful it can be (and I haven’t spoke of the multiusers mode!!!), especially combined with ssh sessions:

ssh user@host
screen (on the server)
some commands
C-a d (to detach the screen-session)
exit (to close the ssh-session)

Later :

ssh user@host
screen -r

as if you have never closed your ssh session =)

For more information : man screen and my screenrc.

Il utilise bien entendu nohup. Mais je vous suggère d’utiliser screen. Si vous ne savez pas comment vous en servir, aller faire un tour sur le wiki de Gentoo, le tutoriel est sympa. Il y a aussi un billet de liquidat plutôt sympa sur screen.
En tous les cas, pour tester la bête : installez le

sudo apt-get install screen

devrait faire l’affaire.
Ouvrez ensuite 2 terminaux (que j’appelerai T1 etT2).
Dans T1, tapez

screen -S toto

Une nouvelle session de screen commence.
Écrivez n’importe quoi, comme ls; echo toto.
Maintenant, dans T2 tapez

screen -dR toto

Et … vous avez détaché la session de screen de T1 pour l’attacher dans T2 =)
Dans T1 tapez screen -ls pour avoir une liste des sessions, screen -d toto pour détacher la session toto, screen -r toto pour la rattacher dans T1, etc.
Tapez C-a : (ctrl+a puis deux-points pour le mode commande) quit. Et vous avez fermé votre session toto.

Je m’arrête là mais j’espère que vous avez pu apercevoir la puissance de screen (et j’ai même pas parlé du mode multi-utilisateurs ), surtout combiné avec ssh :

ssh user@host
screen (sur le serveur)
des commandes
C-a d (pour détacher la session screen)
exit (pour fermer la session ssh)

Puis plus tard :

ssh user@host
screen -r

comme si vous n’aviez jamais fermé votre session ssh =)

Pour plus d’info : man screen et mon screenrc.

~ by loquehumaine on 2007, October 30 - Tuesday.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: