I have multiple screens running on an Ubuntu server that are initiated as:
screen -dmS screen1 cmd
screen -dmS screen2 cmd
etc...
And I need to kill one screen, but not all of them. What is the correct command to kill a single particular screen with its name? I've read through the man pages but I can't seem to find the command I am looking for.
Also I want to write this command into a bash script so I can't simply screen -r screen1 then press Ctrl+X as I normally would.
-
If you do a
screen -list, you'll notice that each screen name begins with a number, which is the PID of the screen:$ screen -list There are screens on: 12281.pts-1.jonah (12/21/2009 07:53:19 PM) (Attached) 10455.pts-1.jonah (12/19/2009 10:55:25 AM) (Detached) 2 Sockets in /var/run/screen/S-raphink.From there, just send a KILL signal to this specific PID:
$ kill 12281and it will kill the specific screen.
BassKozz : this won't work because I am running it from a bash script, and I rather not have to pull the PID from screen -list that matches the correct screen... defraagh's answer above worked like a charm. Thanks thou.Raphink : Ok, good that defraagh had a perfect solution for it.From Raphink -
From the man page :
-X Send the specified command to a running screen session. You can use the -d or -r option to tell screen to look only for attached or detached screen sessions. Note that this command doesn't work if the session is password protected.You can do :
screen -X -S <sessionid> killBassKozz : PERFECT!!! Thanks defraagh, musta missed that in the man.Raphink : Good to know :-)From defraagh -
defraagh's solution doesn't work for me, however I can kill the screen session using Raphink's idea:
screen -list get the process ID
kill -9 PROCESSID
screen -wipe SESSIONID
From garconcn
0 comments:
Post a Comment