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.
- 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.
- Dans la session Screen, j'exécute une commande (par exemple, watch grep \"cpu MHz\" /proc/cpuinfo) pour surveiller la vitesse du processeur.
- Ensuite, je me suis détaché de la session en appuyant sur Ctrl+a et d .
- Ensuite, je liste les sessions Screen à l'aide de la commande "screen -ls" et quitte la session SSH.
- 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.