私とscreen (@第30回cbug meeting) 2014/5/17(土)@池袋
DESCRIPTION
第30回CBUG Meetingで発表したscreenの使い方についての発表です。TRANSCRIPT
私とscreen
2014年5月17日(土) まほろば工房 伊波 源太
第30回CBUG Meeting
30th CBUG Meeting
GNU Screen
•http://www.gnu.org/software/screen/
•便利。だけど辛い時もある。
1. (例)すごく深いディレクトリで作業する
2. 新しいバッファ開く
3. また別のバッファ開く
2
% cd すごく深いディレクトリ
% cd すごく深いディレクトリ
辛い!
30th CBUG Meeting
今後の伊波の運命
1. screenを使い続ける
2. cdコマンドを多投する
3. 腱鞘炎が発生する
4. キーボードが打てなくなる
5. 失職
3
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多投→腱鞘炎→失職
30th CBUG Meeting
ソリューション
• gdbというプロセス間通信手法
5
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)
解決!
30th CBUG Meeting
デモ (従来環境について)
7
←(1)このディレクトリで作業中
(2)新バッファ開く
←(3)別ディレクトリに いる。辛い。
30th CBUG Meeting
デモ (プロセス間通信) 1/3
8
(1)gdbというプロセス間通信クライアントを起動し screenとの通信チャネルをオープソする
プロンプト出ると オープソ完了→
気にしない
30th CBUG Meeting
デモ (プロセス間通信) 2/3
9
(2)通信チャネルを介して、新CWDを メッセーヅパッツソグにより通知
←CWD通知メッセーヅACK→
通信チャネル閉塞メッセーヅ
30th CBUG Meeting
デモ (プロセス間通信) 3/3
10
新バッファ開く
←幸福実現
30th CBUG Meeting
デモ (スクリプト化)
11
本筋に関係ない 辛気臭い部分
~/bin/cwd コマンド
通信メッセーヅ
プロセス間通信 クライアント起動部
30th CBUG Meeting
デモ (使用例)
12
メッセーヅパッツソグを行う
←幸福実現
30th CBUG Meeting
まとめ
• gdbというプロセス間通信手法を日常的に多用することで、幸福を実現することができる
• gdb最高!
• gdb! gdb! gdb! gdb! gdb! gdb! gdb! gdb! gdb! gdb! gdb! gdb!
13
30th CBUG Meeting
懇親会でのご意見 (5/18追記)
•「頭がおかしいです」の歪曲表現 (同意見多数)
•ありがとうございます (伊波)
• gdbというプロセス間通信技術を活用することで、SDNコントローラを構成することも可能ではないか(umeさん)
• !! (伊波)
14
30th CBUG Meeting
今後の野望 (5/18追記)
• Insanity Software-Defined Network (ISDN)を実現
• kgdbというプロセス間通信手法を基盤技術とする
•リモートからアタッチプロセス間通信を行うことにより、経路注入等を行う
• ISDNコントローラ以外の部分は、一切の追加開発を要しない等、多数のメリットがある
15