D'une manière ou d'une autre, j'ai réussi à fermer une fenêtre d'écran sans que l'écran ne le remarque, de sorte que la session est toujours signalée comme attached
. Cela m'empêche de me rattacher à cette session. Que puis-je faire?
me@iupr-serv8:~$ screen -r
There are several suitable screens on:
25028.pts-19.XXX-serv8 (01/05/2012 07:15:34 PM) (Attached)
24658.pts-19.XXX-serv8 (01/05/2012 07:11:38 PM) (Detached)
24509.pts-19.XXX-serv8 (01/05/2012 07:10:00 PM) (Detached)
18676.pts-5.XXX-serv8 (01/02/2012 06:55:33 PM) (Attached)
Type "screen [-d] -r [pid.]tty.Host" to resume one of them.
me@XXX-serv8:~$ screen -r 25028
There is a screen on:
25028.pts-19.XXX-serv8 (01/05/2012 07:15:33 PM) (Attached)
There is no screen to be resumed matching 25028.
[mise à jour]
Finalement, j'ai découvert que la session n'était pas perdue, mais l'ID de la première session est 0
. La deuxième session qui a l'ID 1
.
Essayez de le détacher d'abord avec screen -d
. Si cela ne fonctionne pas, vous pouvez essayer, par ordre croissant de accentuation,
-d|-D [pid.tty.Host]
does not start screen, but detaches the elsewhere running screen session. It has the
same effect as typing "C-a d" from screen's controlling terminal. -D is the equivalent
to the power detach key. If no session can be detached, this option is ignored. In
combination with the -r/-R option more powerful effects can be achieved:
-d -r Reattach a session and if necessary detach it first.
-d -R Reattach a session and if necessary detach or even create it first.
-d -RR Reattach a session and if necessary detach or create it. Use the first session if
more than one session is available.
-D -r Reattach a session. If necessary detach and logout remotely first.
-D -R Attach here and now. In detail this means: If a session is running, then reattach.
If necessary detach and logout remotely first. If it was not running create it and
notify the user. This is the author's favorite.
-D -RR Attach here and now. Whatever that means, just do it.
screen -r '1234.somescreensession'
Il y a un écran sur:
1234.somescreensession (ci-joint)
Il n'y a pas d'écran à reprendre correspondant à la session 1234.
Voici un moyen simple de reprendre cette session d'écran.
screen -D -r '1234.somescreensession'
Parfois, les écrans multiples fonctionnent en arrière-plan.
Ils peuvent être repris par:
screen -r [pid]
Pour obtenir l'écran, lancez d'abord screen -R
, vous verrez alors tous les PID en cours d'exécution de l'écran, après cela, reprenez par screen -r [pid]
.
J'ai rencontré le même problème après la fermeture inattendue de ma connexion ssh avec le message Write Failed: broken pipe
alors que j'avais une session d'écran attachée. Cependant, je n'ai pas pu récupérer ma session d'écran à l'aide de l'une des commandes ci-dessus. Notez que j'utilise la version suivante:
~> screen --version
Screen version 4.00.03 (FAU) 23-Oct-06
Apparemment, il y avait encore une instance de sshd
en cours d'exécution, ce qui m'a empêché de détacher et de rattacher la session. Après avoir identifié le PID
de l'instance appropriée de sshd
et kill
ing, j'ai pu le rattacher à screen -r
.
Juste pour information: vous trouverez certainement plus d'un sshd
démon, un correspondra à votre connexion actuelle et un autre appartenant à la session screen
périmée (en effet, il pourrait y avoir plusieurs autres sshd
s en cours d'exécution appartenant à plusieurs autres screen
s).