Exécuter des commandes sur Putty sans craindre de perdre la connexion

13

Comment utilisez-vous efficacement la commande "écran"?
Est-ce:

  1. Tapez "écran"

  2. Tapez la commande

  3. Perdre la connexion

  4. Revenez sur la session perdue

Comment effectuer l'étape 4?

Quack Quichotte
la source

Réponses:

18

Avec écran:

  1. screen
  2. type command
  3. Ctrl- A- Dpour se détacher de l'écran
  4. déconnexion de la session
  5. screen -RD à rattacher à l'écran (s'il y en a plusieurs, vous obtiendrez une liste des sessions d'écran en cours et vous devrez fournir le numéro de session) à partir d'une nouvelle session

Une méthode plus simple qui est utile pour les commandes qui laissent des fichiers journaux ou lancent simplement une sortie pertinente et qui n'ont pas besoin d'interactivité est la suivante nohup:

  1. nohup command > logfile &
  2. Déconnexion de la session
  3. tail -f logfile d'une nouvelle session
Vinko Vrsalovic
la source
Remarque: l'étape 3 est entièrement facultative. Si vous fermez votre session PuTTY sans vous détacher, vous pouvez toujours la rattacher screen -RD.
Duncan Jones
4

L'écran est vraiment puissant et vous permet de faire exactement ce que vous avez demandé.

Pour voir toutes vos sessions, tapez

screen -list

Une fois que vous avez identifié une session d'écran pour vous reconnecter également, essayez

screen -dr SCREENID

qui détachera et rattachera joliment votre session.

Vous pouvez aussi faire un moins beau,

screen -D -R

qui se détachera et se déconnectera à distance, si nécessaire, puis se reconnectera, ou si cette session n'existe pas, il la créera et avertira l'utilisateur. Vous pouvez ajouter un "-t NAME" pour donner un titre aux shells ou programmes.

Dans l'écran, utilisez

command-c

pour créer une nouvelle fenêtre (vous n'avez donc pas besoin de 4000000 sessions d'écran pour vous déconnecter et vous reconnecter), et basculez entre elles avec

command-int

Indexation à partir de 0, bien sûr: P

Puisque vous semblez un peu peu familier avec l'écran, je vais supposer que vous pourriez utiliser d'autres informations. J'aime les commandes suivantes, comme:

-e xy

Ce qui fait que x est le caractère de commande et y le caractère pour générer un caractère de commande littéral. Les valeurs par défaut sont Ctrl-a et `a.

Il y en a plus pour vous ici: écran! C'est pour les programmeurs


la source
2

screen -dr pour détacher et reprendre la session d'écran précédente.

sepp2k
la source
2

Voici ce que j'ai appris sur l'utilisation de l'écran (ce que moi aussi, je viens de commencer):

  • screen -S <name>crée un écran nommé '<nom>'. Ceci est très utile si vous souhaitez avoir plusieurs sessions d'écran en même temps. Par exemple, j'en utilise un que j'utilise normalement et un que j'utilise pour mes processus persistants.
  • screen -ls répertorie les écrans en cours d'exécution.
  • screen -r <name>reprend un écran détaché. Si l'écran est déjà attaché quelque part, utilisez screen -dr <name>.

De plus, lorsque vous commencez à utiliser l'écran, chaque fois que vous prévoyez de quitter, appuyez sur ^a d(= ctrl-a suivi d'un d ) pour détacher l'écran que vous utilisez actuellement. Il pourra ensuite être repris ultérieurement.

En outre, je peux recommander de consulter la ^a ?liste des différentes commandes que vous pouvez utiliser lorsque vous êtes à l'intérieur d'un écran.

Les plus importants d'entre eux (pour moi) sont:

  • ^a c pour créer une nouvelle fenêtre dans votre session écran.
  • ^a ^a pour basculer entre les deux dernières fenêtres utilisées.
  • ^a " pour répertorier les fenêtres actuelles de votre session.
  • ^a Esc pour faire défiler dans votre tampon d'écran.
  • ^a k pour tuer la fenêtre actuelle.
  • ^a x pour verrouiller votre session d'écran, au cas où vous auriez besoin de quitter votre ordinateur et que vous ne voulez pas que les gens s'en occupent.
Sebastian Paaske Tørholm
la source
1

vous pouvez également configurer votre environnement pour vous connecter et démarrer l'écran dès le départ. Il y a plusieurs façons de procéder. J'ai choisi d'ajouter ceci à mon fichier .bashrc.

# screen management
if [ $SSH_TTY ] && [ ! $WINDOW ]; then
  SCREENLIST=`screen -ls | grep 'Attached'`
  if [ $? -eq "0" ]; then
    echo -e "Screen is already running and attached:\n ${SCREENLIST}"
  else
    screen -U -R
  fi
fi
cheval pâle
la source
0

Tu chercherais

screen -x
Matthew Scharley
la source
0

L'étape 4 est "screen -r"

Si vous vous êtes déconnecté avec force, vous devrez peut-être faire "screen -r -d", pour le forcer à se déconnecter de votre ancienne session ssh, qui, selon lui, est toujours ouverte.

Hugh Perkins
la source
0
 For windows system

 Open putty 
 then login in server

Si vous voulez voir l'écran dans la console, vous devez écrire une commande

 Screen -ls

si vous devez accéder à l'écran, vous devez utiliser la commande ci-dessous

 screen -x screen id
Ankit jain
la source