2007-03 / 2007-03-16

前のエントリ: cygwinでscreen [screen]
次のエントリ: 定時出社 [diary]

別ターミナルで動いているscreenに外部からコマンド実行
2007-03-16-2 / カテゴリ: [screen] / [permlink]

-X を使う。
Manpage of SCREENより。
-X
    動作中の screen セッションに特定のコマンドを送る。 -d や -r オプションを用いれば、アタッチされているセッションやデタッチされているセッションのみを探すよう、screen に伝えることもできる。ただしこのコマンドは、セッションがパスワードで保護されている場合には動作しないことに注意。

外部から新しいウィンドウを作る

% screen -X screen

外部から新しいウィンドウを作ってそこでプログラムを実行する

% screen -X screen lv /etc/hosts
ただし、プログラム終了でウィンドウは破棄される…

外部から指定したディレクトリをカレントとして新しいウィンドウを作る

多分そんな機能はない…
ので
% screen -X chdir /path/to; screen -X screen
chdir [path]で、新しいウィンドウを生成したときのカレントディレクトリを変更できる。んで、新しいウィンドウ生成コマンドを発行。
でも同時に実行できない…? (screen -X ... -X ... はダメだった)
注意点として、以降の新ウィンドウ生成は、ここで指定したディレクトリになってしまう。


ただし、生きている screen プロセスがない場合は、全部失敗する...
生きていても detach されていれば、atach せにゃ使えない...

ちなみに cygwin の場合、「ファイル名を指定して実行(R)...」からは、screen がコマンドプロンプト上からしか使えない(This is cannot be run in DOS mode)っぽいけど、
zsh -c "screen -X screen"
で起動は可能(実行時にコマンドプロンプトが表示されるけど)

だいなとの連携はまた後で考えよう…
前のエントリ: cygwinでscreen [screen]
次のエントリ: 定時出社 [diary]

2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12

最終更新時間: 2013-05-02 16:12