J'ai lu comment démarrer automatiquement un écran lorsque je me connecte ssh
à un serveur distant. Je voudrais un simple one-liner à ajouter à mon .bash_profile
pour commencer screen
lorsque je ssh
rentre et ne PAS quitter ma connexion à distance lorsque je détache l'écran.
Je suis à la recherche dans exec screen
et à peu près toutes les combinaisons de -d
, -r
, -D
et -R
et ne peut pas comprendre ce que j'ai besoin des drapeaux.
Idéalement, je taperais ssh whatever
et serais connecté au serveur dans un nouveau screen
ou il pourrait rattacher un ancien écran, j'aimerais savoir comment faire les deux pour voir ce que je préfère. Ensuite, je peux soit taper Ctrl adou Ctrl det le faire me ramener à la ssh
connexion normale pour ce serveur (où vous verriez le motd). De là, je peux screen -r
revenir dans l'écran que je veux, ou appuyer à Ctrl dnouveau pour me déconnecter.
la source
logout
ouexit
juste après cette ligne une session ssh est immédiatement terminée une fois que l'écran est fermé par ctrl + D?J'ai rencontré des problèmes avec la création de 40 sessions d'écran en cascade avec certaines des solutions lors du démarrage d'une nouvelle fenêtre ou session d'écran. J'ai pu éliminer l'écran en cascade et créer une nouvelle session s'il n'en existait pas avec ceci:
Il teste si vous êtes en session écran et s'exécute
screen -R
si vous ne l'êtes pas. Sans le test, vous obtenez le "Fixation de l'intérieur de l'écran?" avertissement de l'écran chaque fois que vous créez une nouvelle fenêtre d'écran.la source
screen -ls
test que Tony a mentionnéscreen -RR
se rattachera à la première session disponible ou en créera une si nécessaire.la source
Si je comprends votre besoin, vous devriez essayer:
if $(screen -ls | grep -q pts); then screen -x; else screen -R; fi
Il ne créera qu'une seule session d'écran, sinon il se reconnectera à la session existante de manière multi-fenêtres (même si vous avez plusieurs sessions ssh, vous finirez par la même session d'écran)
la source
screen -xR
, qui semble être analysé comme "attacher s'il y a quelque chose à attacher, sinon faire un nouvel écran".Voici une petite extension,
le script pour la vérification bashrc s'il y a plus d'une session d'écran détachée. S'il y en a plus, vous devez choisir la session manuellement. Quand il y a une session détachée, vous revenez à cette session. Si vous quittez la session, la session ssh se fermera également.
la source
Si vous souhaitez vous connecter automatiquement à une session d'écran lorsque vous vous connectez via SSH, ajoutez le code ci-dessous à votre
.bash_profile
ou à votre.bashrc
sur votre machine distante, il:.bashrc
Voici le script:
PS: Si vous souhaitez l'activer pour le terminal local, supprimez-le
&& ! -z "${SSH_CLIENT}
sur la première ligne.la source