Screenを使う その2: セッション管理

[ttyrecによるムービー 1]

さて今回はセッション管理に関する説明をしようかなと思っております。 えーttyrecと連動するという非常に無謀な計画です。 終わったら公開しますが本文の内容は録画後も変更される予定ですので 内容はかならずしも一致しないです。

現在の状態の説明。

となっています。1で編集して2で確認、という繰り返しになります。

セッション管理の必要性

みなさんは複数のマシンで同時に作業したりすることはありますでしょうか? その場合、一つの端末用マシンを設定して、他のマシンはその端末から loginした状態で操作する、なんてことをすると、キーボードやディスプレイを いくつも用意しなくて済み効率がよいでしょう。またそういったものを 置く場所も限られていますから、数が少ないほど管理は楽になるでしょう。

そんなわけで複数のKTermやらTeraTermやらで作業をするわけですが、 何かの拍子に接続が切れてしまった、というような場合に何が起こるでしょう。 ふたたびログインしなおしたときにはさっきまで動かしていたアプリケーションは 強制終了させられています。仮にnohupやdisownでログアウト後も 動き続けるようにするような用意をしていたとしても、 ではそのアプリケーションが現在どんな状態なのかを知るには どうすればいいでしょうか。

teeなどで出力をファイルに落としていれば、アプリケーションの様子を 間接的に知ることはできるでしょう。が、そこまで準備を周到にしておかなかった 場合は、終わってんだか終わってないんだかようわからんような 状態になりえます。

だいたい困った事態が起きるときというのはそういう準備をしていなかったときに 決まっていますから(偏見)、何も考えなくてもそういった準備が 整っているような状態があるとすれば、それを使ったほうが ユーザとしては楽でしょう。

というわけでScreenの登場です。screenの中でアプリケーションを動かしておく ことによって

さらに となれば、もうdisownやらteeやらに頼る必要もないですね。

...んー我ながら変な文章を書いているなあ。しかしこうやって録画している 以上あんまり基本的なところからいじるとmovieの価値がなくなってしまう...

実況

とりあえず時間のかかる作業としてemacs21のbuildをあげてみようかなと 思います。(現在tarの展開中)

このbuildの最中に意図的に回線を落とし、その後にまた 復帰して作業を続けるという様子をお見せしたいと思います。

...まだ展開終わらない。

configure中。さてwith-muleっているんだったっけ?...まあいいです。

buildが始まりました。ではセッション管理の説明をします。

セッション管理の基本

セッション管理といってもややこしいことはほとんどありません。 回線が切れるとscreenは中断(detached)状態になり、 そのscreenが生きている限りいつでも(別端末からでも)復帰(resume)が できるというものです。

回線切断状態を意図的に行うこともできます。というわけで 今回はその強制detachを行うことにします。

detachのためのコマンドは^Tdです。^Tdとすると、 その端末であがっているscreenはdetached状態になります。

このmovieでは、^Tdした後にlogoutすることで一旦終了となります。 次のmovieで復帰をおこないます。

screen -r とすることで、detachされたscreenに復帰することができます。 ではこのmovieはいったん終了です。

[ttyrecによるムービー 2]

movie2本目です。先程detachしたscreenに復帰できていることが分かります。 emacsのbuildは3番でやっていたのですが....なんかもう終わっちゃってる みたいですね(^^; まあとりあえずemacsに復帰できたというだけで detach/resumeの感覚は掴めていただけたのではないかと思います。

さらに強力な機能としてmultiモードというのがあります。 こいつを使うと、複数の端末で1つのscreenのセッションを寄ってたかって いじることができます。

今回の例の場合、detachしたセッションに対してresumeできるのは1つの 端末だけですので、resumeするためには必ずdetachされていなければ いけないという制限があります。わかりづらいっすね。説明が 思いつかないのであとでゆっくり書きます(^^;

multiモードの例はttyrecでお見せすることはできませんので、 何か別の方法でお見せすることを考えたいと思います。

ではまたdetachしてこのmovieを終わらせたいと思います。


戻る
Zinnia (zinnia@risky-safety.org)
このWebコンテンツ(ここから辿れるもの)に対する コメントのメールは許可なく公開することがあります。