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 -xveya 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 controldenilen 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ı bashişlemi PID 7109 ile öldürmeyi önerir. Bu screen -dr controlişlem aynı zamanda PID 7387 ile de süreci öldürür. Daha sonra ekrana hala bağlanamıyorum.
SCREEN -S controlEkran oturumunu başlatan işlemin initana öğ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 -lsBu "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 ...)