Daha önce ile uzun süren bir ekran oturumuna yeniden bağladım screen -dr control
. Ancak, bazen bu komut ekrana yeniden bağlanmaz ve bunun yerine sonsuza kadar askıda kalmaz (10 dakika sonra iptal ettim). Bu yalnızca SSH bağlantısı beklenmedik bir şekilde kesildiğinde olur ve ekran düzgün bir şekilde çıkarıldığında gerçekleşmez Ctrl-A d
. Diğer anahtarlar, örneğin screen -x
veya screen -D -RR
çalışmıyor.
Bu yazı , ekranın bağlantısını kesen ekran oturumunu tutan PTY'yi öldürmeyi önermektedir. Ancak, sadece screen -dr control
denilen kabuğu öldürür .
Örneğin:
$ ps -ef | grep control | grep -v grep
nomad 7387 7109 0 13:05 pts/50 00:00:00 screen -dr control
nomad 15299 1 0 Nov27 ? 00:13:47 SCREEN -S control
$ ps -ef | grep bash | grep 'pts/50'
nomad 7109 7108 0 12:49 pts/50 00:00:00 -bash
Bağlantılı yazı bash
işlemi PID 7109 ile öldürmeyi önerir. Bu screen -dr control
işlem aynı zamanda PID 7387 ile de süreci öldürür. Daha sonra ekrana hala bağlanamıyorum.
SCREEN -S control
Ekran oturumunu başlatan işlemin init
ana öğesi olarak açıkçası öldüremeyeceğim.
Asılı ekran oturumuna yeniden bağlanmanın bir yolu var mı?
Güncelleme: Bu, 2.6.32-358.6.1.el6.x86_64 çekirdeği kullanılarak CentOS 6.4'te gerçekleşir. Kabukların hepsi bash 4.1.2 (1) sürümüdür.
screen -ls
Bu "asılı" durumlarda ne diyor?screen -d -r <session>
"ayır ve kurtar" anlamına gelir, bu yüzden onu ilk elden ayırmamak önemli olmamalıdır. (Ve sık sık yapmak için, değil ...)