Devam ettirmek için müstakil ekran alınamıyor


11

Macun kullanıyorum ve güvenilir olmayan bir kablosuz bağlantım var, bu yüzden çalışmamı sürdürmek için ekran kullanıyorum. Genellikle bağlantım kesilecek ve sonra ekranımı yeniden bağlayamıyorum. Ben koşacağım screen -D -RRve sadece orada süresiz olarak oturacak. Denedim ctrl+z, benim konsol geri almak için takip ps aux | grep screenve sonra kill -9tüm sonuçlar için, ve sonra screen -D -RRtekrar ama aynı sonuçlar elde ederler. Bahsetmeye değer d ve r herhangi bir kombinasyon deneyin, ama yine de sadece orada oturuyor. Ekranım orada, hiçbir şey yapmayacak, en azından özgeçmiş.

Ekran oturumumu devam ettirmek için nasıl ipuçları, püf noktaları veya fikirler var mı?

Yanıtlar:


16

Aktif bir ekrana bağlantıyı bırakıp tekrar bağlandığımda bunu gördüm. Hata # 27462 ("Özgün oturum kaybolduğunda durakları yeniden bağla ") sorunu gördüğüm gibi açıklıyor. Görünen şey, ekranın ayrılmak üzere olduğunu gösteren tty'yi bildirmeye çalıştığı, ancak tty'nin bağlantı kesildiğinden asıldığı için zaman aşımının gerçekleşmesini beklemek zorunda (beş dakikadan fazla) bazı durumlarda).

Düzeltmek için şunu yaparım:

  • hangi tty'nin ekran oturumunda tutulduğunu çöz ps -ef | grep screen | grep pty
  • o tty ile ilişkili giriş bashını bul ps -ef | grep bash | grep $PTY
  • o bashı öldür kill -KILL $PID

Bu, ekranın bağlantısının doğru şekilde tamamlanmasına neden olur ve normal şekilde yeniden bağlanmanızı sağlar.

Bunu biraz otomatikleştiren örnek bir komut dosyası için buraya bakın .


ps -ef | grep ekranı | grep tty hiçbir şey yazdırmaz çünkü ps -ef | grep ekranı asla tty dizesiyle hiçbir şey döndürmez.
Dave Aaron Smith

Aslında örnek script hile yapıyor gibi görünüyor. Teşekkürler!
Dave Aaron Smith

1
Evet, 'pty' demek istedim, 'tty' demek istemedim.
David Mackintosh

2

Ekran oturumlarımda da benzer bir sorun yaşadım. Onları adlandırıyorum ve çok kullanıcılı oturumlar olarak kurmalarını sağladım. Bulduğum şey, oturumlarımı listelemekti ama bana yeniden bağlanmam gereken bir şey olmadığını söyledi. Sonra denedim:

screen -x <session_name>

Şampiyon gibi çalıştı!


1

Ne tür bir bağlantım olursa olsun, ekranın geri gelmemesi ile ilgili bir sorun yaşadığımı söyleyemem. Benim her zamanki yöntemim:

ssh myname@foo
screen -S sessionName
(do my work... get disconnected...)

ssh myname@foo
screen -d (just to make sure anything wasn't left attached)
screen -r sessionName

1
Örneğin screen -list 32322.mySession (Attached) değerini döndürür. Sonra ekran -d mySession. Daha sonra screen -list hala 32322.mySession (Attached) öğesini döndürür ve screen -r mySession geri döner daveSession ile eşleştirmeye devam edilecek bir ekran yoktur.
Dave Aaron Smith

"screen -d" yi denedin mi?
Jason Antman


0

Soulrce: https://kb.iu.edu/data/ahrm.html

To see your existing screen sessions, enter:
  screen -list
This will display a list of your current screen sessions. For instance, if you had one attached screen, you would see:

         1636.pts-21.hostname      (Attached)

To detach an attached screen, enter:
  screen -D
If you have more than one attached screen, you can specify a particular screen to detach. For example, to detach the screen in the above example, you would enter:
  screen -D 1636.pts-21.hostname

0

Benim gibi akıllıysanız root, normal kullanıcı hesabında olduğu gibi başlayan bir ekran oturumunu sürdürmeye çalışıyordunuz . Bu out Bulunan ls /var/run/screenbana bir dizin gösterenroot


0

Bazen aynı sorun var (ekran -r -d devam etmiyor, yanıt vermiyor). Düzeltmek için ekran oturumuyla ilişkili terminali (tty / pty) bulun:

screen -list
There is a screen on:
    28176.pts-51.localhost        (Attached)
1 Socket in /tmp/uscreens/S-xxxx.

Listelenen terminali bulun (bu örnekte pts-51):

ps axuw | grep 'pts/51'   # will vary depending upon how pty's are named
you     12293  0.0  0.2  2148 1128 pts/51   Ss   10:34   0:00 -bash

Bu terminaldeki işlemleri (genellikle kabuğunuz) öldürün:

kill 12293

gittiğinden emin olmak için ps'yi tekrar çalıştırın. Değilse:

kill -9 12293

Sunucumda (gnu / linux), bazen ölene kadar -9'u birkaç kez öldürmek zorunda kalacağım.

Bu tty'deki tüm işlemler bittikten sonra ekran doğru şekilde devam etmelidir:

screen -r -d

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.