GNU/screen

GNU screen は、UNIX の文字端末を仮想化するソフトウェア。便利。 こんなことができる。

  • ssh等でログインしている時、(回線トラブル等で)接続が切れても復活できる
  • 違うマシンからログインして、同じ画面を見ることができる (VNCみたいに)
  • 1つの画面を切り替えて複数のシェルを実行できる。CUIベースのマルチウィンドウみたいなもの。画面分割もできる。

[[$$amazon-search-result-middle books-jp Linux]]

ハングアップかな? と思ったら

GNU screen を使っていて、ハングアップのような現象がでたときは、以下のことを試してみましょう。

  • ^q を打ってみる。

    • 端末ソフトウェアのフロー制御が有効な場合、間違って ^s を打つと画面出力が停止します。慌てずに ^q 。
  • ^a ^q を打ってみる。

    • アプリケーション側に ^q を渡してみる。
  • ^a f を打ってみる。

    • GNU screen 側のフロー設定がおかしくなっていて、アプリケーション側に ^s / ^q が渡らないときがある。
    • ^a f を打つことで、GNU screen のフロー制御を "-flow(auto)" → "+flow" → "-flow" と変更できる。 +flow のときは ^s / ^q が効かない。
    • なので、^a f を "-flow" になるまで打って、そこで ^a ^q 。
  • 一度 端末を落として入りなおす。

    • ^a x などでロックされている場合、入りなおせば復活します。

スクリーンロック予防

screen -r をしても復活できない

大ピンチですね。

  • screen -r -d してみる。
  • screen -wipe してみる。
  • screen -x してみる。

万策つきたら、ps して screen あるいは SCREEN のプロセスを殺すしかないです。 回線ハングアップのときに、たまにこの状態になります。

[[$$amazon-search-result-middle books-jp Linux ツール]]

screen をインストールする

  • CentOS なら yum install screen

文字化けしたときは

screenの文字コードをUTF8に

  • screen -U で起動する
  • 起動後に utf8 on on コマンドを入れる
    • ^A: でコマンドモードにして、utf8 on on
    • defutf8 すると新規ウィンドウのデフォルトが変更される

screenを起動すると You are not the owner of /tmp/uscreens/S-root. と言われる

screen 実行時に root 権限が必要な OS で、 screen のバイナリが suid root されていない場合に発生。

$ ls -l /usr/local/bin/screen-4.0.2
-rwsr-xr-x   1 root     bin      1542932 May 14  2004 /usr/local/bin/screen-4.0.2

GNU screen の suid root については、下記の脆弱性情報も参照のこと。

GNU/screen から派生したプロジェクト

リンク

キーバインドが使う人によってまちまちなので、そこだけは注意して読みましょう。


amazon 4798010340