私とscreen (@第30回cbug meeting) 2014/5/17(土)@池袋

15
私とscreen 2014517() まほろば工房 伊波 源太 30CBUG Meeting

Upload: genta-iha

Post on 02-Jul-2015

708 views

Category:

Software


0 download

DESCRIPTION

第30回CBUG Meetingで発表したscreenの使い方についての発表です。

TRANSCRIPT

Page 1: 私とscreen (@第30回CBUG Meeting) 2014/5/17(土)@池袋

私とscreen

2014年5月17日(土) まほろば工房 伊波 源太

第30回CBUG Meeting

Page 2: 私とscreen (@第30回CBUG Meeting) 2014/5/17(土)@池袋

30th CBUG Meeting

GNU Screen

•http://www.gnu.org/software/screen/

•便利。だけど辛い時もある。

1. (例)すごく深いディレクトリで作業する

2. 新しいバッファ開く

3. また別のバッファ開く

2

% cd すごく深いディレクトリ

% cd すごく深いディレクトリ

辛い!

Page 3: 私とscreen (@第30回CBUG Meeting) 2014/5/17(土)@池袋

30th CBUG Meeting

今後の伊波の運命

1. screenを使い続ける

2. cdコマンドを多投する

3. 腱鞘炎が発生する

4. キーボードが打てなくなる

5. 失職

3

Page 4: 私とscreen (@第30回CBUG Meeting) 2014/5/17(土)@池袋

30th CBUG Meeting

何が問題?

4

screen CWD: ~/ zsh

CWD: ~/a/b/c

zsh CWD: ~/a/b/c

zsh CWD: ~/

(2)新バッファ開く→fork

子プロセス

buffer#1

buffer#2

buffer#3 (new process)

(3)親のCWDを引き継ぐ (そこは~/a/b/cに

しといて欲しかった)

(1) ここで作業中

(4)cd多投→腱鞘炎→失職

Page 5: 私とscreen (@第30回CBUG Meeting) 2014/5/17(土)@池袋

30th CBUG Meeting

ソリューション

• gdbというプロセス間通信手法

5

Page 6: 私とscreen (@第30回CBUG Meeting) 2014/5/17(土)@池袋

30th CBUG Meeting

つまり?

6

screen CWD: ~/a/b/c zsh

CWD: ~/a/b/c

zsh CWD: ~/a/b/c

zsh CWD: ~/a/b/c

gdbというプロセス間 通信手法を用いることで

CWDを通知

子プロセス

buffer#1

buffer#2

buffer#3 (new process)

解決!

Page 7: 私とscreen (@第30回CBUG Meeting) 2014/5/17(土)@池袋

30th CBUG Meeting

デモ (従来環境について)

7

←(1)このディレクトリで作業中

(2)新バッファ開く

←(3)別ディレクトリに いる。辛い。

Page 8: 私とscreen (@第30回CBUG Meeting) 2014/5/17(土)@池袋

30th CBUG Meeting

デモ (プロセス間通信) 1/3

8

(1)gdbというプロセス間通信クライアントを起動し screenとの通信チャネルをオープソする

プロンプト出ると オープソ完了→

気にしない

Page 9: 私とscreen (@第30回CBUG Meeting) 2014/5/17(土)@池袋

30th CBUG Meeting

デモ (プロセス間通信) 2/3

9

(2)通信チャネルを介して、新CWDを メッセーヅパッツソグにより通知

←CWD通知メッセーヅACK→

通信チャネル閉塞メッセーヅ

Page 10: 私とscreen (@第30回CBUG Meeting) 2014/5/17(土)@池袋

30th CBUG Meeting

デモ (プロセス間通信) 3/3

10

新バッファ開く

←幸福実現

Page 11: 私とscreen (@第30回CBUG Meeting) 2014/5/17(土)@池袋

30th CBUG Meeting

デモ (スクリプト化)

11

本筋に関係ない 辛気臭い部分

~/bin/cwd コマンド

通信メッセーヅ

プロセス間通信 クライアント起動部

Page 12: 私とscreen (@第30回CBUG Meeting) 2014/5/17(土)@池袋

30th CBUG Meeting

デモ (使用例)

12

メッセーヅパッツソグを行う

←幸福実現

Page 13: 私とscreen (@第30回CBUG Meeting) 2014/5/17(土)@池袋

30th CBUG Meeting

まとめ

• gdbというプロセス間通信手法を日常的に多用することで、幸福を実現することができる

• gdb最高!

• gdb! gdb! gdb! gdb! gdb! gdb! gdb! gdb! gdb! gdb! gdb! gdb!

13

Page 14: 私とscreen (@第30回CBUG Meeting) 2014/5/17(土)@池袋

30th CBUG Meeting

懇親会でのご意見 (5/18追記)

•「頭がおかしいです」の歪曲表現 (同意見多数)

•ありがとうございます (伊波)

• gdbというプロセス間通信技術を活用することで、SDNコントローラを構成することも可能ではないか(umeさん)

• !! (伊波)

14

Page 15: 私とscreen (@第30回CBUG Meeting) 2014/5/17(土)@池袋

30th CBUG Meeting

今後の野望 (5/18追記)

• Insanity Software-Defined Network (ISDN)を実現

• kgdbというプロセス間通信手法を基盤技術とする

•リモートからアタッチプロセス間通信を行うことにより、経路注入等を行う

• ISDNコントローラ以外の部分は、一切の追加開発を要しない等、多数のメリットがある

15