Как удалять скрины linux

kill a screen session

I’m trying to kill a screen session. I noticed a lot of other related questions, but none of those answers are working for me. I am trying to kill the following session:

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 

Now I am in the session. According to the documentation: http://www.gnu.org/software/screen/manual/screen.html#Quit I am supposed to press «control a» and then «control \». I do that and nothing happens. Another solution said to press Ctrl + a and type :quit. However, again it doesn’t do anything. In fact, pressing control + a , absolutely nothing happens afterwards except a message «No Other Window»

in screen v4.x, to kill all sessions, ps aux | grep «SCREEN» | awk ‘‘ | xargs kill

For the record, you can just do screen -r porkypig or screen -r 23520 , rather than having to include the full string. Screen names are supposed to make things easier, not more complicated.

13 Answers 13

  • Rationale: -X = Execute command, -S session PID to execute on
  • Example: screen -XS 20411 quit
  • Source: innaM’s Answer

i like this one too. plus can always throw it in a loop to get rid of all sessions if needed: for session in $(screen -ls | grep -oP ‘\d+\.\w+’ | cut -d. -f1); do screen -S «$» -X quit; done .

first you need to re attach to the screen session
screen -r 23520 as you have done. Then press ctrl + a and then a k and press y when it asks if you really want to kill the session

This works if there is a problem with a process running inside the screen, but not if there is a problem with screen itself. That is the case 99% of the time, and has the added benefit of only affecting a single window within the screen rather than terminating all windows.

This command will kill all screen sessions, if that is desired:

So with all those official suggestions, I have one here that i feel is easier, and just as effective, and kind of more straight forward:

Who wants to go into an unknown and un-needed screen just to press in a couple commands that most might barely remember? This avoids going into it at all, and kills it straight off.

Plus, if you have more than one, this will take them all in one fell swoop.

Not a good choice. I’ve been doing it for some time. Sometimes it causes bad behaviors (e.g. logging out from your user account immediately). Also, as @Mikkel mentioned, it could cause to close all your screens, which would not be what you want. Sometimes you need to keep running some (e.g. some are running by system) and stop some other screens.

This will kill all the detached screens:

screen -ls | grep detached | cut -d. -f1 | awk '' | xargs kill

This will kill all screens, attached or detached

screen -ls | grep pts | cut -d. -f1 | awk '' | xargs kill

Like you, I wanted to kill my screen session and found the documentation unhelpful. Convinced that there must be a keyboard shortcut, I found that
ctrl + a then \
works

Читайте также:  Manjaro linux установка btrfs

I then get the prompt: «Really quit and kill all your windows [y\n]»

I am not sure why the documentation says ctrl + a then ctrl + \ . That doesn’t do anything for me.

we can also use the exit command to terminating screen

Easiest and most straightforward approach! You will, of course, first need to reattach to the screen session.

I encountered this problem when updating screen. The screen command would hang when attempting to reattach the session, regardless of how many -D or -R I added to the command. However, screen -ls conveniently provides the pid of the session, allowing you to intervene using the following:

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. 

(This is similar to Brian Thomas’s answer, but his will kill all running screen sessions, which may not be what you want if you have multiple screens open but only one misbehaving.)

After 6 hours breaking my head all over internet. yours was the only answer that worked. Thanks mate!

You can find the process id of the attached running screen. I found it same as the session id which you can get by command:
screen -ls
And you can use following command to kill that process:
kill [sessionId] or
sudo kill [sessionId]
You can kill the screen even if it is attached on some other terminal window.

You can use this to kill a session

Press ctrl+d to kill screen window. Repeat this until you kill all screen windows. Once you ran out all windows screen will kill the session and terminating. Shortest solution if you not having many windows

You can just simply type exit while in a recording mode, I found out it to be most convenient as it directly exits the running screen.

Simply, use the exit command inside a screen window and if you have a running process press control + z before that.

This doesn’t answer the question (how to kill a screen session, as opposed how to exit normally) and it doesn’t expand on the other answers. A good answer might cover the normal exiting procedure and then document a few ways you can kill screen if that doesn’t work.

I believe what is being asked is how to ‘quit’ a screen session from within screen itself. This would kill all open terminals in the session and leave the user at the prompt for the parent terminal. The session can be suspended from within using CTRL-A, CTRL-Z. But this creates a a problem I’m trying to avoid which is leaving a bunch of opened screen sessions over time and then not knowing which ones are truly active and which ones I should have closed.

After lots of looking, I believe there is no way to do this. Killing them using the PID method is ok, but if there are many sessions open, some of which I might be using, I don’t always know which ones to kill.

Читайте также:  What is transparent proxy in linux

So what I do when I’m truly done with a screen session is to repeatedly hit CTRL-d to close each terminal individuly until the session completely exits.

This is the best solution I’ve found.

You must log in to answer this question.

Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.7.13.43531

Ubuntu and the circle of friends logo are trade marks of Canonical Limited and are used under licence.

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Источник

Убить отдельный сеанс экрана

«kill» будет убивать только одно окно экрана. Чтобы «убить» весь сеанс, используйте quit .

Пример

$ screen -X -S [session # you want to kill] quit 

Вы можете убить отдельный сеанс, который не отвечает в сеансе экрана, выполнив следующие действия.

    Введите screen -list , чтобы идентифицировать сеанс отдельного экрана.

~$ screen -list There are screens on: 20751.Melvin_Peter_V42 (Detached)
screen -r 20751.Melvin_Peter_V42

Комментарий @laffuste работал для меня, но quit и :quit приводят к command not found на моем удаленном сервере Linux (возможно, виноваты различия между версиями ОС или экрана)

Легче убить сеанс, когда дано какое-то значащее имя:

//Creation: screen -S some_name proc // Kill detached session screen -S some_name -X quit 

Список экранов:

There is a screen on: 23536.pts-0.wdzee (10/04/2012 08:40:45 AM) (Detached) 1 Socket in /var/run/screen/S-root. 

Убрать сеанс экрана:

ИМО этот ответ является наиболее полным и лучше всего написанным, однако это должен быть просто screen -list . Я попытался отредактировать, чтобы исправить это, но StackOverflow сказал мне, что я не изменил достаточно символов. : /

@cwc Я сделал редактирование, которое вы указали. Как правило, варианты несколько букв взять двойной тир — , но параметры экрана нет.

Вы можете просто пойти в место, где размещается и запускаться сеанс экрана:

 There is a screen on: 26727.pts-0.devxxx (Attached) 1 Socket in /tmp/uscreens/S-xxx.  

В каталоге uscreens больше нет файла 26727.pts-0.devxxx . Теперь, чтобы убедиться, что просто введите это:

Это единственное решение, которое будет работать, если экран «завис», т.е. не мертвый, но не может быть привязан к.

Это помогло мне, когда экран был полностью заблокирован, но мне также нужно было найти и убить сам процесс. ps aux | grep screen нашел pid, и я выпустил команду kill чтобы удалить ее. В зависимости от того, что у вас было на экране, у вас также могут быть временные файлы и блокировки для очистки.

Источник

Kill detached screen session [closed]

Locked. This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions.

screen -X -S [session # you want to kill] kill 

11 Answers 11

"kill" will only kill one screen window. To "kill" the complete session, use quit .

Example

$ screen -X -S [session # you want to kill] quit 

For dead sessions use: $ screen -wipe

You can kill a detached session which is not responding within the screen session by doing the following.

    Type screen -list to identify the detached screen session.

~$ screen -list There are screens on: 20751.Melvin_Peter_V42 (Detached)
screen -r 20751.Melvin_Peter_V42

@laffuste 's comment worked for me, but quit and :quit lead to command not found on my remote Linux server (perhaps differences between versions of the OS or screen are to blame)

List screens:

There is a screen on: 23536.pts-0.wdzee (10/04/2012 08:40:45 AM) (Detached) 1 Socket in /var/run/screen/S-root. 

Kill screen session:

It's easier to kill a session, when some meaningful name is given:

//Creation: screen -S some_name proc // Kill detached session screen -S some_name -X quit 

This answer uses the name of the session, which is way more convenient than looking up the ID. Thank You!

You can just go to the place where the screen session is housed and run:

 There is a screen on: 26727.pts-0.devxxx (Attached) 1 Socket in /tmp/uscreens/S-xxx.  

The uscreens directory will not have the 26727.pts-0.devxxx file in it anymore. Now to make sure just type this:

No Sockets found in /tmp/uscreens/S-xxx.

This is the only solution that will work if the screen is "stuck", ie. not dead, but cannot be attached to.

This helped me when the screen was utterly locked, but I did need to find and kill the actual process as well. ps aux | grep screen found the pid and I issued a kill to remove it. Depending on what you had running in your screen, you may have temp files and locks to clean up as well.

Should clean all dead screen sessions.

@ShihaoXu Dead means the session is unreachable and on localhost (socket connection is broken). - see gnu.org/software/screen/manual/screen.html

alias cleanscreen="screen -ls | tail -n +2 | head -n -2 | awk ''| xargs -I<> screen -S <> -X quit" 

Then use cleanscreen to clean all screen session.

A simple one-liner: screen -ls | grep Detached | cut -d. -f1 | awk '' | xargs kill

Worked a treat, but had to modify it slightly to work on OSX: screen -ls | tail +2 | head -2 | awk ''| xargs -I<> screen -S <> -X quit

Slight improvement:-screen -ls | grep Attached | cut -d. -f1 | awk '' | xargs -I<> screen -d <>

works. This is from within the screen session.

To kill all detached screen sessions, include this function in your .bash_profile:

killd () < for session in $(screen -ls | grep -o '4\') do screen -S "$" -X quit; done > 
== ISSUE THIS COMMAND [xxx@devxxx ~]$ screen -ls == SCREEN RESPONDS There are screens on: 23487.pts-0.devxxx (Detached) 26727.pts-0.devxxx (Attached) 2 Sockets in /tmp/uscreens/S-xxx. == NOW KILL THE ONE YOU DONT WANT [xxx@devxxx ~]$ screen -X -S 23487.pts-0.devxxx kill == WANT PROOF? [xxx@devxxx ~]$ screen -ls There is a screen on: 26727.pts-0.devxxx (Attached) 1 Socket in /tmp/uscreens/S-xxx. 

Источник

Оцените статью
Adblock
detector