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 。
- SCREEN 備忘録 (鶯宿梅のこのもとに) に情報がありました。
-
一度 端末を落として入りなおす。
- ^a x などでロックされている場合、入りなおせば復活します。
スクリーンロック予防
- stty stop undef で、^S を止めておきましょう。戻すときは stty stop ^S
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 から派生したプロジェクト
- tscreen
- GNU Screenは古いの? ((rubikitch loves (Emacs Ruby CUI)) 2009/07/10)
- tmux
- 時代はGNU screenからtmuxへ (それ、Gentooだとどうなる? 2009/07/09)
リンク
キーバインドが使う人によってまちまちなので、そこだけは注意して読みましょう。
- GNU Screen (GNU本家。英文)
- [[$$wikipedia GNU_Screen]]
- GNU screen で仮想端末。処理をほったらかしにして切断、さあ帰ろう (SawanoBlog)
- screenのススメ (でかいのNET)
- CentOSでGNU screenのkillとquitを使えるようにするメモ
- GNU screen いろいろまとめ (naoyaのはてなダイアリー)