以前の回答は、winputty 端末と amazon ssh サーバー接続では機能しませんでしたが、これは機能します:
screen -S yourscreentitlehere -X stuff $'\003'
参照:
- ctrl-c を特定の画面セッションに送信する
- $'\003' は ctrl+c http://donsnotes.com/tech/charsets/ascii.html です
- 内容は https://www.gnu.org/software/screen/manual/screen.html#Paste です
これを使用して、バグのあるコマンドによって作成された何百もの誤った画面セッションを終了しました:
for s in $(screen -ls|grep -o -P "1\d+.tty"); do screen -X -S $s quit; done;
ここで:grep -o -P "1\d+.tty"
Perl ライクな名前の正規表現 "1\d+.tty"
でセッション名を取得するコマンドです。 番号 1
で始まるすべてのセッションをキャプチャします 、いくつかの他の番号があります (\d
) .tty
で終わる
警告 :上記のコマンドを適用する前に、最初にこのコマンドでテストして、必要なセッションの正確なリストを取得する必要があります。これは、不要なセッションを終了しないようにするためです:
for s in $(screen -ls|grep -o -P "1\d+.tty"); do echo $s; done;
私はいつもこの echo
に for
のリストをテストするたびに $()
のサブコマンドによって生成されたループなど、ループが明確ではありません。 拡張。
コマンドラインから (非対話的に) 特定の画面セッションを強制終了する「画面」の方法がいくつかあります。
1) 「終了」コマンドを送信:
screen -X -S "sessionname" quit
2) スクリプトを実行している screen セッションに Ctrl-C を送信:
screen -X -S "sessionname" stuff "^C"
どちらの場合も、'screen -ls' を使用して、強制終了したい screen セッションのセッション名を見つける必要があります...実行中の screen セッションが 1 つしかない場合は、-S " sessionname" パラメータ。
CTRL+a に続いて「k」を押すと、スクリーン セッションが強制終了されます。