60 votes

Comment puis-je savoir si je suis à l'intérieur d'un "écran" linux ou non ?

Le "screen" fait référence à un programme mentionné dans Comment se reconnecter à une session ssh déconnectée ? . C'est une bonne installation.

Mais il y a une question que j'aimerais vraiment savoir. Comment puis-je savoir si je suis à l'intérieur d'un "écran" ? La différence est la suivante :

  • Si oui, je sais que je peux fermer en toute sécurité la fenêtre du terminal actuel, par exemple, fermer une fenêtre PuTTY, sans perdre ma session Shell(Bash etc).
  • Si non, je sais que je dois m'occuper des travaux en cours avant de fermer la fenêtre du terminal.

Mieux, j'aimerais que ce statut soit affiché dans le prompt PS1 afin que je puisse le voir à tout moment automatiquement.

3voto

HankCa Points 141

J'ai un moyen encore plus cool.

Ajoutez ce qui suit à votre ~/.screenrc et vous verrez une ligne d'état en bas (montrant en texte inversé la date, l'heure et la charge du système. Vous trouverez plus de codes d'échappement dans le lien de la page de manuel ci-dessous.

    hardstatus alwayslastline
    hardstatus string '%Y-%m-%d %c | %l'

Source de ceci lors d'une session d'écran avec ctrl-a:source ~/.screenrc .

Je dois remercier Kyle Rankin du Linux Journal pour cela. Voir son fantastique article à http://www.linuxjournal.com/article/10950 . La section de la page de manuel à laquelle il fait référence se trouve à l'adresse suivante http://www.gnu.org/software/screen/manual/screen.html#String-Escapes .

2voto

Aaron Davies Points 121

Vous pouvez également remonter l'arbre des processus à partir de $$ pour voir si vous trouvez une instance d'écran. La chaîne exacte dépendra probablement de votre configuration - sur ma boîte OS X, une zsh l'écran intérieur a login comme son parent, SCREEN comme son grand-parent, et screen comme son arrière-grand-parent.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X