2007年08月02日
GNU Screen
screenはとてもとても便利だ。
screenとは仮想端末ソフトで、端末一枚開いておけば、その一枚の中に複数の端末を開くことができる。
そしてそれらをキーで切り替えながら使うことができる。
ココだけ聞くと「そんなの別に嬉しくないし複数端末開いておけばいいじゃん」と言うことになるが、screenの一番嬉しいところはアタッチとデタッチだ。
簡単に言うと回線が切れても環境がそのまま残る!
普通、回線が切れると端末が閉じて実行中のプログラムも停止するが、screen上で起動するとscreen内の仮想端末上で実行されるので停止することはない。
そして再びマシンにログインし、screen -rとかしてアタッチし直せばさっきの環境がそのままの状態で復元できる。
コレを使えば、screen内の仮想端末1はメモのChengeLog、2はプログラムのエディタ、3はそれのコンパイルと実行、4は何かのサーバのログ・・・などの環境を構築しておいて、それらを家と会社で使い回すことができる。
会社に来て端末を開き、「あのファイルのどこ編集してたかなぁ」などと悩む必要はない。ただ単にscreen -rと打てばもう家と同じ環境になる。
後は文字コードの変換とかも便利。
キーバインドに文字コードの変換を割り当てられるので、EUCとUTF-8の環境が混在していてもいちいち端末ソフトの設定を変える必要はない。キーを押すだけで変換してくれる。
と言うことで、UnixやLinuxでCUI上で生きている人にはお勧めのscreen。詳しくはLet's use screen
でもこのscreen、バグがあるのかよくハングアップする。環境によるのか家では止まるが会社マシンでは問題ない。
仮想端末を切り替えるときに固まることが多く、CPUが100%に張り付く。そして徐々にメモリを占有していき、そのまま放っておくとメモリを食い尽くしてマシンが固まってしまう。
プロセスを殺せば大丈夫だけど、再びいちいち環境を構築するのがめんどくさい。
ちなみにプロセスを殺したときに「突然ダンジョンが崩壊した! あなたは死んだ・・・」見たいなメッセージが表示されるw 海外で有名なゲームDungeons & Dragonsの死んだときのメッセージらしい。
Screen version 3.09.15
Screen version 4.00.03
上の二つのバージョンを試してみたけどダメだった。あ、3.09.13も試してみたっけ。会社で大丈夫なバージョンは3.09.13。最後の手段のLet's use screenに置いてあった非公式パッチを4.00.03に当てて今お試し中。
コレでダメだったらうちの環境が悪いのかなぁ。
Trackback on "GNU Screen"
このエントリーのトラックバックURL:
"GNU Screen"へのトラックバックはまだありません。
"GNU Screen"へのコメントはまだありません。