GNU screen その6(再生)
■ このスレッドは過去ログ倉庫に格納されています
0187名無しさん@お腹いっぱい。
2010/01/08(金) 08:06:56ポートスキャンw。その発想はなかった。
でもどっちを使うかはどう判断するの?(プロンプトにどう判断するための
情報出してるの?)
>>186
shellには手を入れてない。完全自動ではなく、あくまで1アクションで
取り込みできるようにしただけ。
最初はMSG_PUSHENVとか新設してscreen->SCREEN->sh-on-display/window ttyに
環境変数定義を突っ込ませるという方向でやってたのだけど、最終的に
- 入力中の側のscreenのpidをSCREEN側の環境変数で引けるように修正
- 設定で bind ^v eval 'stuff "injectenv $SCREEN_USERPID\012"' を追加
- 後は C-aC-v で "injectenv" シェル関数を呼んで環境変数を取り込み
というscreen修正+stuff+シェル関数コンボでやってみた。injectenv は
中でscreenの親pid(sh)を調べて、/proc/<pid>/environment から環境変数を
引っ張ってきて取り込んでる。
結局display/window tty側からはSCREENまでしか到達できず、
入力中userttyの判定ができない。userttyを掴んでいるscreen側から
アクションを起こす必要があって、エスケープコマンド経由になった。
で、その結果、stuffで突っ込むという微妙な方法(対話的にしか実行
できない)しか選べなかった。
理想的にはdisplay/window tty内のシェルからコマンド実行すると
大元のscreenまでシグナルが飛んで、そこから逆戻りでシェルに
環境変数突っ込んでくれるようなのがいいのだけど。
■ このスレッドは過去ログ倉庫に格納されています