bir ekran oturumu öldür


65

Bir ekran oturumunu öldürmeye çalışıyorum. Bir sürü başka soru fark ettim ama bu cevapların hiçbiri benim için çalışmıyor. Aşağıdaki oturumu öldürmeye çalışıyorum:

screen -ls
There is a screen on:
    23520.pts-6.porkypig    (09/30/2013 02:49:47 PM)    (Detached)
1 Socket in /var/run/screen/S-root.

screen -r 23520.pts-6.porkypig

Şimdi oturumdayım. Belgelere göre:

http://www.gnu.org/software/screen/manual/screen.html#Quit

"Kontrol a" ve sonra "kontrol \" tuşlarına basmam gerekiyor. Bunu yapıyorum ve hiçbir şey olmuyor.

Başka bir çözüm de Ctrl+ tuşuna basıp şunu ayazın: quit. Ancak yine bir şey yapmaz. Aslında, control+ tuşuna basıldığında a, "Başka Pencere Yok" mesajı dışında kesinlikle hiçbir şey olmuyor.


1
v4.x ekranında, tüm oturumları öldürmek için,ps aux | grep "SCREEN" | awk '{print $2}' | xargs kill
Fredrick Gauss

2
Kayıt için tam dizgeyi eklemek yerine sadece yapabilir screen -r porkypigveya yapabilirsiniz screen -r 23520. Ekran isimlerinin işleri daha kolay hale getirmesi gerekiyor, daha karmaşık değil.
Mikkel

Yanıtlar:


73

ilk önce yaptığınız
screen -r 23520gibi ekran oturumuna eklemeniz gerekir . Sonra ctrl+ ave ardından büyük harflere Kbasın yve oturumu gerçekten öldürmek isteyip istemediğinizi sorduğunda tuşuna basın


2
Bu, ekranın içinde çalışan bir işlemle ilgili bir sorun olduğunda çalışır, ancak ekranın kendisinde bir sorun olmazsa çalışır. Bu durum, zamanın% 99'unda söz konusudur ve tüm pencereleri sonlandırmak yerine sadece ekran içindeki tek bir pencereyi etkilemenin faydası vardır.
Mikkel

1
Bir oturumu değil bir pencereyi öldürmek
Eric Wang

53

Eklemeden o ekrandan çıkabilirsiniz. İlk önce oturumunu bulun:

$ screen -ls

ve sonra bırak:

$ screen -XS [session # you want to quit] quit

(-X = Yürüt komutu, -S oturumu yürütmek için PID)

[GÜNCELLEME]

Örnek:

screen -XS 20411 quit

1
Bu oldukça basitti. -X -S'yi -XS
AJ

2
Sen kredi vermelidir innaM cevap kopyalamak eğer
Martin Thoma

8

Bu, tüm ayrılmış ekranları öldürür:

ekran-l | grep müstakil | Kes -f1 | awk '{print $ 1}' | xargs öldürmek

Bu, bağlı veya ayrılmış tüm ekranları öldürür

ekran-l | grep pts | Kes -f1 | awk '{print $ 1}' | xargs öldürmek

7

Tüm bu resmi önerilere göre, sadece daha kolay ve daha etkili ve daha ileri düz bir şey için gidelim.

pkill screen

Kim en çok zor hatırlayabildiği birkaç komutla basmak için bilinmeyen ve ihtiyaç duyulmayan bir ekrana girmek ister? Bu, içine girmekten hiç kaçınmaz ve hemen öldürür.

Ayrıca, birden fazla varsa, bu hepsini tek bir baskın düştü.


1
Bunun, istediğiniz veya olamayacağınız tüm çalışan ekranları öldüreceğini unutmayın.
Mikkel

İyi bir seçim değil. Bir süredir yapıyorum. Bazen kötü davranışlara neden olur (örneğin, hemen kullanıcı hesabınızdan çıkmak). Ayrıca, @Mikkel'in dediği gibi, istediğin gibi olmayacak olan tüm ekranlarını kapatmana neden olabilir. Bazen bazılarını çalıştırmaya devam etmelisiniz (örneğin bazıları sistem tarafından çalışmaktadır) ve bazı diğer ekranları durdurmalısınız.
MAChitgarha

2

Ekranı güncellerken bu sorunla karşılaştım. screenNasıl olursa olsun çoğunun, oturumu yeniden bağlanması için çalışırken komut asarlar -Dya -Rben komuta ekledi. Ancak, screen -lsaşağıdakileri kullanarak müdahale etmenize olanak tanıyan oturumun pidini rahatça sağlar:

10:42 user ~ $ screen -ls
There is a screen on:
        5730.my_screen     (Detached)
1 Socket in /tmp/screens/S-user.

10:42 user ~ $ sudo kill 5730

10:43 user ~ $ screen -ls
No Sockets found in /tmp/screens/S-user.

(Bu, Brian Thomas'ın cevabına benzer, ancak açık olan ancak sadece bir tane yanlış ekran varsa, istediğiniz ekran olmayabilir.


6 saat sonra kafamı tüm internette kırdıktan sonra ... çalışan tek cevap senindi. Teşekkürler dostum!
kRazzy R

1

Senin gibi, benim seanslarımı öldürmek istedim ve dökümanları faydasız buldum. Klavye kısayolu olması gerektiğine ikna oldum,
ctrl + asonra \
işe yaradığını gördüm.

Daha sonra şu mesajı alıyorum: "Gerçekten tüm pencerelerinizi bırakıp öldürün [y \ n]"

Dokümantasyon diyor neden emin değilim ctrl + ao zaman ctrl + \. Bu benim için hiçbir şey yapmaz.


1

Ekteki çalışan ekranın işlem kimliğini bulabilirsiniz. Komutla elde edebileceğiniz oturum kimliğiyle aynı buldum:
screen -ls
Bu işlemi öldürmek için aşağıdaki komutu kullanabilirsiniz:
kill [sessionId]veya
sudo kill [sessionId]
Başka bir terminal penceresine takılı olsa bile ekranı öldürebilirsiniz.


0

Ekran penceresini kaldırmak için ctrl + d tuşlarına basın. Tüm ekran pencerelerini öldürene kadar bunu tekrarlayın. Bir kere koştuktan sonra tüm pencereler ekranı öldürür ve sonlandırır. Çok fazla pencereniz yoksa en kısa çözüm

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.