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