Próbuję zabić sesję ekranową. Zauważyłem wiele innych powiązanych pytań, ale żadna z tych odpowiedzi nie działa dla mnie. Próbuję zabić następującą sesję:
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
Teraz jestem w sesji. Zgodnie z dokumentacją:
http://www.gnu.org/software/screen/manual/screen.html#Quit
Powinienem nacisnąć „control a”, a następnie „control \”. Robię to i nic się nie dzieje.
Innym rozwiązaniem jest naciśnięcie Ctrl+ ai wpisz: quit. Jednak znowu nic nie robi. W rzeczywistości, naciskając control+ a, absolutnie nic się nie dzieje poza komunikatem „Brak innych okien”
gnu-screen
JohnMerlino
źródło
źródło
ps aux | grep "SCREEN" | awk '{print $2}' | xargs kill
screen -r porkypig
lubscreen -r 23520
zamiast zawierać pełny ciąg. Nazwy ekranów mają ułatwiać, a nie komplikować.Odpowiedzi:
najpierw musisz ponownie dołączyć do sesji ekranowej,
screen -r 23520
tak jak to zrobiłeś. Następnie naciśnij ctrl+, aa następnie kapitał Ki naciśnij, ygdy pojawi się pytanie, czy naprawdę chcesz zabić sesjęźródło
Możesz wyjść z tego ekranu bez dołączania się do niego. Najpierw znajdź jego sesję:
a następnie wyjdź z niego:
(-X = Wykonaj polecenie, -S PID sesji, aby wykonać)
[AKTUALIZACJA]
Przykład:
źródło
Spowoduje to zabicie wszystkich odłączonych ekranów:
Spowoduje to zabicie wszystkich ekranów, dołączonych lub odłączonych
źródło
Dzięki tym wszystkim oficjalnym sugestiom, po prostu wybierzmy coś łatwiejszego, równie skutecznego i nieco prostszego.
pkill screen
Kto chce przejść do nieznanego i niepotrzebnego ekranu, aby wcisnąć kilka poleceń, których większość może ledwo zapamiętać? To w ogóle unika wchodzenia w to i natychmiast je zabija.
Plus, jeśli masz więcej niż jeden, to zajmie je wszystkie za jednym zamachem.
źródło
Napotkałem ten problem podczas aktualizacji ekranu.
screen
Komenda zawiśnie przy próbie ponownego dołączenia sesji, niezależnie od tego, ile-D
i-R
dodałam do komendy. Jednakscreen -ls
wygodnie zapewnia pid sesji, umożliwiając interwencję przy użyciu następujących czynności:(Jest to podobne do odpowiedzi Briana Thomasa, ale zabije wszystkie uruchomione sesje ekranowe, co może nie być tym, czego chcesz, jeśli masz otwartych wiele ekranów, ale tylko jeden źle się zachowuje.)
źródło
Tak jak ty, chciałem zabić moją sesję ekranową i dokumentacja okazała się nieprzydatna. Przekonany, że musi istnieć skrót klawiaturowy, przekonałem się, że
ctrl + a
to\
działa
Następnie pojawia się monit: „Naprawdę wyjdź i zabij wszystkie okna [t \ n]”
Nie jestem pewien, dlaczego dokumentację mówi
ctrl + a
wtedyctrl + \
. To nic dla mnie nie robi.źródło
Możesz znaleźć identyfikator procesu dołączonego ekranu uruchamiania. Znalazłem to tak samo, jak identyfikator sesji, który można uzyskać za pomocą polecenia:
screen -ls
I możesz użyć następującego polecenia, aby zabić ten proces:
kill [sessionId]
lubsudo kill [sessionId]
Możesz zabić ekran, nawet jeśli jest on podłączony w innym oknie terminala.
źródło
Naciśnij ctrl + d, aby zabić okno ekranu. Powtarzaj to, aż zabijesz wszystkie okna ekranu. Gdy skończysz, wszystkie okna systemu Windows zakończą sesję i zakończą się. Najkrótsze rozwiązanie, jeśli nie masz wielu okien
źródło