部屋を掃除したら漫画が沢山出てきたので書く日記

漫画とか合唱とかUNIXとかLinuxとかについて書く日記です。

Solaris 10サーバでscreenを使ってみる その1

前回はscreenをインストールしましたが、今度は使い方です。

前提条件

Windows XP SP2からTera TermでSolaris10 10/08 x86sshログインして実行する。

起動

screenを起動したサーバで以下のコマンドを実行します。

screen

以下のような起動画面が表示されるので、Enterを押します。

簡単に起動

実行するたびにいちいち起動メッセージが出るとうざったいので、出ないようにします。後述する「.screen」という設定ファイルを書くという方法がありますが、とりあえず出したくない時は、

screen -T vt100

とすればOKです。

普通に使う

あとは通常のsshログインした時と同じように使えます。
この状態で、screenならではの機能を使うには以下のようなキーを押します。

一旦抜ける(デタッチ)

screenの真骨頂です。

Ctrl + A , D (CTRL押しながら Aを押した後、CTRLを離してdを押す)

を実行すると画面から一旦抜け(デタッチ)た状態になります。画面には

[detached]

という一行が表示されます。

もう一回入る(アタッチ)

一旦抜けた状態から再度接続(アタッチ)してみます。

screen -r

特に何も変わらずにプロンプトが表示されると思いますが、アタッチに成功しています。

判りづらいので例を上げてみます。この状態で

bash
while :; do date; sleep 1; done

と入力してみましょう。画面には

2010年04月20日 (火) 17時32分17秒 JST
2010年04月20日 (火) 17時32分18秒 JST
2010年04月20日 (火) 17時32分19秒 JST
・
・
・

というように、日時が1秒毎に表示されているはずです。
ここでデタッチをして一旦抜けてみます。

Ctrl + A , D (CTRL押しながら Aを押した後、CTRLを離してDを押す)

日時の表示が止まったはずです。
ではアタッチでもう一回入ってみましょう。

screen -r

はい、引き続き

・
・
2010年04月20日 (火) 17時35分08秒 JST
2010年04月20日 (火) 17時35分09秒 JST
2010年04月20日 (火) 17時35分10秒 JST
・
・

という表示が出続けていますね。時刻も先ほどデタッチした時よりちゃんと進んでいるのもわかります。
なお、この時刻表示はCtrl + C(CTRL押しながら C押す)で終了します。
ここでは時刻を表示するだけのプログラムを実行させましたが、もっと複雑なプログラムや、特定の作業のためのウィンドウをずっと確保しておきたい場合にこの機能は大変役立ちます。最低限はこのアタッチデタッチが出来れば良いのではないでしょうか。

画面の削除(kill)

あと、作った画面は、要らなくなったら消しましょう。
まずアタッチします。

screen -r

この状態で、

Ctrl + A , K (CTRL押しながら Aを押した後、CTRLを離してKを押す)

を押すと、

Really kill this window [y/n]

という、「本当に消していいの?」という質問が出てきますので「y」を入力すると、

[screen is terminating]

と表示されてプロンプトが消えます。これで今回作業した前の状態に戻りました。

長くなったので次回でもうちょっと詳しい機能について書きます。

ではー。

Solaris 10サーバでscreenを使ってみる その2