接続または分離された属性またはIDに基づいてスクリーンセッションを終了するにはどうすればよいですか?

接続または分離された属性またはIDに基づいてスクリーンセッションを終了するにはどうすればよいですか?

質問:

実験をしてから誤って画面が80個近く作られました。

私たちはそれらのIDを使用して1つずつ削除できます。しかし、プロセスを自動化して時間を節約するために、スクリプトやコマンドの組み合わせを使用してこれらすべてを終了する方法はありますか?

There are screens on:
    31408.erpnext   (12/27/2019 03:13:14 PM)    (Attached)
    31396.erpnext   (12/27/2019 03:13:14 PM)    (Attached)
    31384.erpnext   (12/27/2019 03:13:14 PM)    (Attached)
    31372.erpnext   (12/27/2019 03:13:14 PM)    (Attached)
    31360.erpnext   (12/27/2019 03:13:14 PM)    (Attached)
    31348.erpnext   (12/27/2019 03:13:14 PM)    (Attached)
    31336.erpnext   (12/27/2019 03:13:14 PM)    (Attached)
    31324.erpnext   (12/27/2019 03:13:14 PM)    (Attached)
    31312.erpnext   (12/27/2019 03:13:14 PM)    (Attached)
    31300.erpnext   (12/27/2019 03:13:14 PM)    (Attached)
    31288.erpnext   (12/27/2019 03:13:14 PM)    (Attached)
    31276.erpnext   (12/27/2019 03:13:13 PM)    (Attached)
    31264.erpnext   (12/27/2019 03:13:13 PM)    (Attached)
    31252.erpnext   (12/27/2019 03:13:13 PM)    (Attached)
    31240.erpnext   (12/27/2019 03:13:13 PM)    (Attached)
    31228.erpnext   (12/27/2019 03:13:13 PM)    (Attached)
    31216.erpnext   (12/27/2019 03:13:13 PM)    (Attached)
    31204.erpnext   (12/27/2019 03:13:13 PM)    (Attached)
    31192.erpnext   (12/27/2019 03:13:13 PM)    (Attached)
    31180.erpnext   (12/27/2019 03:13:13 PM)    (Attached)
    31168.erpnext   (12/27/2019 03:13:13 PM)    (Attached)
    31156.erpnext   (12/27/2019 03:13:13 PM)    (Attached)
    31144.erpnext   (12/27/2019 03:13:13 PM)    (Attached)
    31132.erpnext   (12/27/2019 03:13:13 PM)    (Attached)
    31120.erpnext   (12/27/2019 03:13:13 PM)    (Attached)
    31108.erpnext   (12/27/2019 03:13:13 PM)    (Attached)
    31096.erpnext   (12/27/2019 03:13:13 PM)    (Attached)
    31084.erpnext   (12/27/2019 03:13:13 PM)    (Attached)
    31072.erpnext   (12/27/2019 03:13:13 PM)    (Attached)
    31060.erpnext   (12/27/2019 03:13:13 PM)    (Attached)
    31048.erpnext   (12/27/2019 03:13:13 PM)    (Attached)
    31036.erpnext   (12/27/2019 03:13:12 PM)    (Attached)
    31024.erpnext   (12/27/2019 03:13:12 PM)    (Attached)
    31012.erpnext   (12/27/2019 03:13:12 PM)    (Attached)
    31000.erpnext   (12/27/2019 03:13:12 PM)    (Attached)
    30988.erpnext   (12/27/2019 03:13:12 PM)    (Attached)
    30976.erpnext   (12/27/2019 03:13:12 PM)    (Attached)
    30964.erpnext   (12/27/2019 03:13:12 PM)    (Attached)
    30952.erpnext   (12/27/2019 03:13:12 PM)    (Attached)
    30940.erpnext   (12/27/2019 03:13:12 PM)    (Attached)
    30928.erpnext   (12/27/2019 03:13:12 PM)    (Attached)
    30916.erpnext   (12/27/2019 03:13:12 PM)    (Attached)
    30904.erpnext   (12/27/2019 03:13:12 PM)    (Attached)
    30892.erpnext   (12/27/2019 03:13:12 PM)    (Attached)
    30880.erpnext   (12/27/2019 03:13:12 PM)    (Attached)
    30868.erpnext   (12/27/2019 03:13:12 PM)    (Attached)
    30856.erpnext   (12/27/2019 03:13:12 PM)    (Attached)
    30844.erpnext   (12/27/2019 03:13:12 PM)    (Attached)
    30832.erpnext   (12/27/2019 03:13:12 PM)    (Attached)
    30820.erpnext   (12/27/2019 03:13:12 PM)    (Attached)
    30808.erpnext   (12/27/2019 03:13:12 PM)    (Attached)
    30796.erpnext   (12/27/2019 03:13:12 PM)    (Attached)
    30784.erpnext   (12/27/2019 03:13:11 PM)    (Attached)
    30772.erpnext   (12/27/2019 03:13:11 PM)    (Attached)
    30760.erpnext   (12/27/2019 03:13:11 PM)    (Attached)
    30748.erpnext   (12/27/2019 03:13:11 PM)    (Attached)
    30736.erpnext   (12/27/2019 03:13:11 PM)    (Attached)
    30724.erpnext   (12/27/2019 03:13:11 PM)    (Attached)
    30712.erpnext   (12/27/2019 03:13:11 PM)    (Attached)
    30700.erpnext   (12/27/2019 03:13:11 PM)    (Attached)
    30688.erpnext   (12/27/2019 03:13:11 PM)    (Attached)
    30676.erpnext   (12/27/2019 03:13:11 PM)    (Attached)
    30664.erpnext   (12/27/2019 03:13:11 PM)    (Attached)
    30652.erpnext   (12/27/2019 03:13:11 PM)    (Attached)
    30640.erpnext   (12/27/2019 03:13:11 PM)    (Attached)
    30628.erpnext   (12/27/2019 03:13:11 PM)    (Attached)
    30616.erpnext   (12/27/2019 03:13:11 PM)    (Attached)
    30604.erpnext   (12/27/2019 03:13:11 PM)    (Attached)
    30592.erpnext   (12/27/2019 03:13:11 PM)    (Attached)
    30580.erpnext   (12/27/2019 03:13:11 PM)    (Attached)
    30568.erpnext   (12/27/2019 03:13:11 PM)    (Attached)
    30556.erpnext   (12/27/2019 03:13:11 PM)    (Attached)
    30544.erpnext   (12/27/2019 03:13:11 PM)    (Attached)
    30532.erpnext   (12/27/2019 03:13:11 PM)    (Attached)
    30520.erpnext   (12/27/2019 03:13:11 PM)    (Attached)
    30508.erpnext   (12/27/2019 03:13:11 PM)    (Attached)
    30496.erpnext   (12/27/2019 03:13:10 PM)    (Attached)
    30484.erpnext   (12/27/2019 03:13:10 PM)    (Attached)
    30471.erpnext   (12/27/2019 03:13:10 PM)    (Attached)
    30458.erpnext   (12/27/2019 03:13:10 PM)    (Attached)
    30446.erpnext   (12/27/2019 03:13:10 PM)    (Attached)
    30433.erpnext   (12/27/2019 03:13:10 PM)    (Detached)
    5061.erpnext    (12/23/2019 06:03:38 PM)    (Detached)
83 Sockets in /var/run/screen/S-erpnext.

私たちがしたいこと:

を除くすべてを終了します5061.erpnext

これまで、私たちは以下を試しました。

源泉

#!/bin/bash
running_screens=$(screen -ls | grep -v "5061.erpnext")
echo "${running_screens}"

for i in {$running_screens}
do
    screens=$(${i} | grep ".")

    if [[ ${screens} != "" ]]; then
        echo "${i}"
    fi
done

ベストアンサー1

標準シェル構文では:

cd /var/run/screen/S-erpnext
for screen in *
do
  case $screen in
    (5061.erpnext) : do nothing         ;;
    (*)            kill "${screen%%.*}" ;;
  esac
done

上記は、そのユーザーの画面ディレクトリに変更され、そのディレクトリの各セッションファイルが繰り返されます。セッションが次の場合いいえ5061.erpnextと入力し、対応するPID(最初のピリオドの前の数字)を削除します。拡張は、${screen%%.*}ピリオドが見つかるまで文字列の末尾からできるだけ多くの文字を削除します。そのようなものを取り除く効果があります。いいえPID。組み込み: do nothing関数を使用すると、引数の:無視を含む何もしないため、その行にコメントを付けてそれをマークしました。いいえこの場合、すべてのPIDを終了してください。

おすすめ記事