web-dev-qa-db-fra.com

Comment puis-je démarrer plusieurs sessions d'écran automatiquement?

J'essaie de créer une commande qui lance screenname__, crée quatre sessions avec des noms différents et exécute quatre commandes différentes.

Je sais comment faire cela manuellement:

1. screen
2. ./command1 args
3. CTRL-A :sessionname Session 1
4. CTRL-A C
5. (GOTO 2)

Puis-je faire cela avec un script bash ou quelque chose? Comment pourrais-je le faire?

19
hughes

screen -dmS "$SESSION_NAME" "$COMMAND" "$ARGUMENTS" va engendrer un écran avec $COMMAND en arrière-plan.

Vous pouvez voir les sessions actives avec screen -ls et les rattacher avec screen -r "$SESSION_NAME".

Les sessions mortes peuvent être tuées avec screen -wipe.

14
LawrenceC

Pour démarrer plusieurs sessions automatiquement, configurez un fichier .screenrc, un fichier de configuration pour screen. Vous pouvez y créer des sessions, démarrer des programmes, modifier le répertoire de travail, etc. Je l’utilise pour initialiser ma session d’écran.

Exemple simple pour un fichier .screenrc:

# don't display the copyright page
startup_message off

# increase scrollback buffer size
defscrollback 10000

# create windows
screen -t TODO vim TODO.txt
chdir src
screen -t coding vim main.c
screen -t run 

Les commandes screen au-dessus de chacune créent une session d’écran. -t définit le titre de la session; le reste de la ligne est la commande à exécuter et ses paramètres.

Ainsi, les première et deuxième lignes screen lancent une session et lancent vim à l'intérieur. Le troisième commence simplement une session et vous laisse tomber à l'invite. chdir modifie le répertoire de travail pour toutes les sessions suivantes.

Si vous souhaitez avoir plusieurs fichiers .screenrc, nommez-les comme vous le souhaitez et sélectionnez-en un avec screen -c myscreenrc.

26
sleske

Vous pouvez utiliser les options d, m, S ensemble:

screen -Sdm s1
screen -Sdm s2
screen -Sdm s3

S: créer un écran

d: détacher d'un écran

m: Pour imposer la création d'écran, que l'écran soit appelé depuis un autre écran ou non.

5
aliasav