J'essaie de créer une commande qui lance screen
name__, 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?
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
.
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
.
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.