GNU/Linux >> Tutoriels Linux >  >> Linux

Comment démarrer automatiquement une session d'écran sous Linux lors de la connexion

Il y a quelques jours, nous avons vu comment démarrer automatiquement une session Tmux chaque fois que vous vous connectez à un système Linux localement ou à distance via SSH. Aujourd'hui, nous allons voir comment démarrer automatiquement Screen session sur Linux lors de la connexion. Les sessions Screen à démarrage automatique aideront grandement lors de l'exécution d'un long processus via SSH. Si vous avez perdu la connectivité réseau pour une raison quelconque, le processus continuera de s'exécuter dans la session Screen du système distant et vous pourrez vous y reconnecter lorsque le réseau reviendra en ligne.

Session d'écran de démarrage automatique sous Linux lors de la connexion

Pour démarrer automatiquement la session Screen sous Linux, modifiez le ~/.bash_profile de votre système Linux ou ~/.bashrc fichier :

$ nano ~/.bash_profile

Si le fichier ci-dessus n'est pas disponible, créez-le simplement.

Et ajoutez-y les lignes suivantes :

if [[ -z "$STY" ]]; then
   screen -xRR default
fi

Ici, nous avons utilisé -x drapeau à attacher à une session d'écran non détachée. Et le -RR flag tente de reprendre la session d'écran détaché la plus récente (en termes de temps de création) qu'il trouve.

Remarque : Si vous utilisez le shell Zsh, ajoutez les lignes ci-dessus dans ~/.zshrc fichier.

Enregistrez et fermez le fichier. Déconnectez-vous et reconnectez-vous au système. Vous serez redirigé vers une nouvelle session Screen nommée ‘default’ .

Maintenant, démarrez n'importe quel processus dans la session Screen et détachez-le en appuyant sur Ctrl+a suivi de d . Le processus continuera à s'exécuter dans la session Screen même si la connexion réseau est déconnectée. Une fois la connexion réseau rétablie, vous pouvez à nouveau vous connecter en SSH au système distant et vous verrez que le travail est toujours en cours d'exécution !!

Jetez un œil à la démo animée suivante :

Permettez-moi de clarifier ce que je viens de faire dans la sortie ci-dessus.

  1. Je me connecte à mon serveur Ubuntu distant via SSH depuis mon système local. Une nouvelle session Screen nommée "default" est automatiquement démarrée.
  2. Dans la session Screen, j'exécute une commande (par exemple, watch grep \"cpu MHz\" /proc/cpuinfo) pour surveiller la vitesse du processeur.
  3. Ensuite, je me suis détaché de la session en appuyant sur Ctrl+a et d .
  4. Ensuite, je liste les sessions Screen à l'aide de la commande "screen -ls" et quitte la session SSH.
  5. Enfin, je me reconnecte au système distant via SSH et vérifie si le processus continue de s'exécuter dans la session Screen sans aucune interruption.

J'espère que vous comprenez.

Pour arrêter le démarrage automatique de la session Screen, supprimez simplement les lignes ajoutées précédemment dans le fichier ~/.bashrc de votre système distant. ou ~/.bash_profile fichier.


Linux
  1. Comment mettre fin à une connexion SSH qui ne répond pas sous Linux ?

  2. Linux – Comment enregistrer une session X — Archlinux+openbox ?

  3. Comment désactiver la gradation de l'écran dans 14.04 ?

  4. Comment attribuer un nom à un écran ?

  5. Comment arrêter un processus d'écran sous Linux?

Comment vérifier si vous êtes en session d'écran ou pas sous Linux

Démarrage automatique de la session Tmux sur le système distant lors de la connexion via SSH

Comment utiliser Screen Command sur Linux pour gérer les terminaux

Comment utiliser Linux Screen Command [Guide essentiel]

Comment utiliser la commande screen sous Linux

Comment effacer le terminal sous Linux {Effacer l'écran sous Linux}