プロフィール

けい

Author:けい
公開したWebサービス・アプリ一覧はこちら

※2014年12月、私が個人で開発したWebサービス・アプリへの
累計アクセス数は8億を超えました。
負荷対策頑張ります。日々精進していきます!!


■■■ 業務経歴 ■■■
社会人1年目:携帯電話開発。画面周りを1年間
2年目 :海外向け携帯電話ミドルウェア開発
     ブラウザとプロトコルスタック周り
2年目後半~:携帯電話の通信専用チップ開発
3年目:カーナビ。画面周りの開発
3年目後半~:BDビデオカメラ
     組み込みLinux カーネルと
     ドライバの開発。
4年目12月:プロジェクト途中で退社
~ここまではC、またはC++で開発~

~ここからJavaがメインの開発~
4年目1月:Web系の会社に転職
       ~4ヶ月間の研修
5年目5月:製造業向け生産管理システム開発
6年目9月:証券会社向けシステム開発
7年目10月~携帯電話向けコミックサイトの運用・開発
8年目12月:プロジェクト途中で退社

~ここからPHPがメインの開発~
8年目1月~仲介手数料が無料の不動産屋の社内SEに転職
交渉しほぼ完全に裁量労働が可能な立場になる。
業務内容はシステム全般ですが、
最近はSEO対策の作業が多いです。
現在14年目 まだ、しばらくはこの会社に居るつもりです。

あと、全ての記事がリンクフリーです。

最近の記事

過去ログ

全ての記事を表示する

全ての記事を表示する

カテゴリー

FC2カウンター

RSSフィード

GNU screen 使い方

私は最近めっきり開発から離れている感じで、DBの負荷対策とか
DBやシステム全体を含めた環境には強くなっているのですが、開発能力はめっきり衰えた気がします。
このままだと現在の仕事が終了した際に、開発者として再度仕事に復帰できるかちょい心配。
普段から家で色々作ったりはしていますが、フリーソフト系の作者って基本的に業務活かせない限り
評価されないんですよね・・・

まぁ、それはそれとして・・・私は最近仕事でGNU screenを使用しているのですが、
使用時に使い方を忘れてしまい、よくその場で調査して時間を喰ってしまっています。
忘れてしまう理由としては、機能が豊富でそのほとんどがショートカットキーであるということ、
調査に時間がかかる理由は、Web上だと多くの場合がデフォルトのキー設定を使用していないので
職場の環境と異なってしまうからです。

なので、私がよく使う機能や使い方、注意点を一覧にしてみました。
キーは全てデフォルトから変更していないので、ここに記載されているコマンドはそのまま使用できます。
screenとは何か?という方はこちらをご覧ください。
メリットを簡単に書くと
①一度の接続で複数のコンソールを操作できる
②通信障害が起きても、コンソールからの切断を余儀なくされても処理は継続されている
③自分のコンソール操作を他の人がネットワーク越しに見ることが出来、また複数人で操作することも出来る

他にもログ機能などの便利な機能があるのですが、私のscreenを使う目的は上記3つに集約されます。
以前は時間がかかる処理はnohupやコマンドの最後に「&」などをを使用していました。
nohupだと対話的な処理には使用できないし
処理の終了が補足出来なかったのですが、screenがあればnohupを使用しなくてもよさそうです。

使い方

起動しているscreen 一覧を取得する
$ screen -list または $ screen -ls

screenを新規に作成して起動
# 日付と目的(以下の例の場合にはdatabaseImport)をつける習慣をつけると、
# 停止させて良いscreenがすぐにわかってよい
$ screen -S 20100311_databaseImport

特定のscreenにアタッチする
$ screen -x 1841

ちなみにアタッチは 「screen -r」でも可能ですが、
「screen -x」を使用すると誰かがアタッチしているセッションにもアタッチ可能なので
-x だけを覚えておけばよいと思う。

デタッチする
$ screen -d 1841 または screen -D 1841

デタッチを行うと、そのセッションで操作している人は全て切断されてしまうので注意が必要です。
処理自体は中断されないため、再接続すればよいのですが、それでも一旦作業が中断してしまうことにはかわりがないので
デタッチは慎重に行ってください。

 実行例
  $ screen -list
  There are screens on:
    1841.20100311_databaseImport (2010年03月14日 19時22分46秒) (Attached)
    1211.20100224_mysqlInport (2010年02月24日 12時45分32秒) (Attached)
  2 Sockets in /var/run/screen/S-lfll.
  
  # 1841.20100311_databaseImportにアタッチする
  $ screen -x 1841

次にショートカットキーについて説明します。
ショートカットキーはエスケープキャラクタの入力後に特定のキーを押します。
エスケープキャラクタとはショートカットキーの基点となるキーのことです。
デフォルトはCtrlを押しながら「a」(以下「C-a」と記載)ですが、
このキーはviやシェルなどでも使われるキーなので通常は変更しますが
今回はわかりやすくするためにデフォルトのキーバインドから変更はいたしません。
※ショートカットキーはscreen にアタッチ後に入力します。

ウィンドウを新規で作成する
C-a c セッション内で新規のウィンドウを作成する

特定のsession内で動いているウィンドウを表示する
C-a w

特定のsession内で動いているウィンドウを切り替える
C-a p 前へ
C-a n 次へ
C-a 数字 その番号のウィンドウへ切り替える
C-a A ウィンドウに名前を付ける

ウィンドウの削除
C-a k (kill) 現在のウィンドウを破棄する。
※対象ウィンドウ内で「exit」でも構わない。
C-a \ (quit) すべてのウィンドウを破棄し、 screen を終了する。

windowの分割
C-a S  上下に分割
C-a tab ウィンドウを移動する
C-a Q 現在の領域以外を消す
C-a X 現在の領域を消す

私がよく使用する機能はこんなところです。
他にも便利な使い方があれば教えて下さい。
スポンサーサイト
コメント(0)   2010.03.14    [ Myカテゴリ:技術の話 ]

コメントの投稿













管理者にだけ表示を許可する

Template Designed By
ぐらいんだぁ