Bash

殺死一個螢幕(但不是所有螢幕)

  • June 13, 2018

我在 Ubuntu 伺服器上執行了多個螢幕,這些螢幕啟動為:

screen -dmS screen1 cmd
screen -dmS screen2 cmd
etc...

我需要殺死一個螢幕,但不是全部。用其名稱殺死單個特定螢幕的正確命令是什麼?我已經閱讀了手冊頁,但似乎找不到我正在尋找的命令。

此外,我想將此命令寫入 bash 腳本,因此我不能像往常一樣簡單地**screen -r screen1**按Ctrl+ 。X

從手冊頁:

  -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.

你可以做 :

       screen -X -S <sessionid> kill

如果您執行 a screen -list,您會注意到每個螢幕名稱都以一個數字開頭,這是螢幕的 PID:

$ 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.

從那裡,只需向這個特定的 PID 發送一個 KILL 信號:

$ kill 12281

它會殺死特定的螢幕。

引用自:https://serverfault.com/questions/96406