web-dev-qa-db-ja.com

GNU画面が応答しない、ブロックされているようだ

GNU Screenはフリーズしているようです。ユーザー入力を入力できません。

GNU screenを使用していて、画面を押すと応答しなくなりました。すべてのGNU screenコマンドを実行できますが、ユーザー入力を入力できません。私は重要な仕事があり、それを失いたくないので、このスクリーンを殺したくありません。

76
sirus

以下のコマンドで、置き換えます Ctrl 画面コマンド用のエスケープキーが何であれ。

試して Ctrl+aq、スクロールをブロック解除するシーケンスです。

Ctrl+as スクロールをブロックするシーケンスで、画面がフリーズしたように見えます。

117
wkl

PuTTYを使用の場合、ctrl + sを押すと、明らかにフリーズした画面が表示されます。これは Xoff signal を送信し、端末の出力をブロックします。

解決策はctrl + qを押してXon信号を送信することです。

60
Daniel Reis

それがあなたの問題であれば、上記はうまく機能します。

これは、別のマシンにsshして、しばらくウィンドウにアクセスしていなかった場合にも発生する可能性があります。その後、戻ったときにフリーズします。これを修正するには、次を試してください。

1)新しいウィンドウを作成する

Ctrl-a c

2)凍結したウィンドウのボックスにsshしたボックスにsshします。

3)sshが実行されているプロセスを見つけます。

ps aux | grep <remote_box_on_frozen_screen>

または

ps aux | grep <your_user_id>

4)プロセスを強制終了する

kill <process_id>
8
Hazok

screen -lsを実行すると、スクリーン名の最初の番号はプロセスIDです。したがって、出力が

There is a screen on:
    21605.pts-0.Random-server   (11/12/2017 11:44:15 PM)    (Detached)
1 Socket in /var/run/screen/S-kg.

次に、これはそれを殺します:

kill 21605

Killコマンドの番号は、screen -ls出力と同じであることに注意してください。

3
Pylinux

ステータス行でバックティックコマンドを使用している場合-つまり、.screenrcには次のようなものがあります。

backtick 1 0 60 /some/script.sh

次に、スクリプトが高速であることを確認する必要があります。明らかにバックティック実行ブロックはすべてIOを画面にブロックします。

構成に変更を加えた場合は、画面セッションを再起動する必要があります(構成は新しいセッションにのみ適用されるため)。

1
Piskvor