web-dev-qa-db-fra.com

Comment démarrer GNU Écran automatiquement lorsque j'ouvre une nouvelle fenêtre de terminal?

J'utilise Ubuntu 14.04 (Cinnamon Mint 17.1) avec Bash. Chaque fois que j'ouvre une nouvelle fenêtre de terminal, j'entre screen pour lancer le gestionnaire de fenêtres, mais je souhaite que le shell le fasse à ma place.

Je crois que j'ai besoin de modifier .bashrc au lieu de .profile, afin qu'il démarre à chaque nouvelle fenêtre de terminal, pas seulement à l'ouverture de session. J'ai donc ajouté ce qui suit à la fin de .bashrc, pour remplacer le processus Shell:

exec /usr/bin/screen -q

Quand je commence une nouvelle fenêtre de terminal:

  • En général, une fenêtre vide avec un curseur clignotant s'affiche et l'invite Bash n'apparaît que lorsque j'ai appuyé sur Ctrl+C.
  • Parfois, la fenêtre du terminal se ferme immédiatement lorsque j'appuie sur Ctrl+C ou lorsque je redimensionne la fenêtre du terminal.
  • Parfois, je reçois un message-éclair sans $LS_COLORS (bien que ce soit difficile à reproduire, je ne suis donc pas tout à fait sûr de savoir quand ni pourquoi cela se produit).

Quelqu'un peut-il expliquer pourquoi cela échoue pour moi et suggérer une solution?

Merci,

Huw

7
Huw Walters

Lorsque l'écran démarre, la première fenêtre lance votre shell et vous avez demandé à votre shell de démarrer l'écran. Ensuite, lorsque l'écran démarre, la première fenêtre lance votre shell et vous avez demandé à votre shell de démarrer l'écran. Puis, quand l'écran commence ...

Faire mousser, rincer, répéter.

screen définit la variable $TERM sur "screen", afin d'éviter des invocations sans fin récursives d'écran ("tortues jusqu'en bas"), votre .bashrc peut se terminer par:

[[ $TERM != "screen" ]] && exec screen -q
5
glenn jackman