9

tmux を使用してサーバー コンソールを実行しています。send-keysコンソールが応答しているかどうかを確認するには、コンソールでコマンドを実行するために使用したいと思います。

tmux send-keys -t mysess:mywin "show info" Enter

(実際には、現在、コンソール出力全体をファイルに記録し、最後の行を読み取っていますが、より良い解決策が存在することを願っています。)

tmux pipe-pane -o -t mysess:mywin 'cat >> mysess-mywin.log'
4

2 に答える 2

9

出力にアクセスする方法のコンテキストは、このソリューションが優れているかどうかに影響しますが、これはうまくいくかもしれません:

tmux send-keys -t <session:win.pane> '<command>' Enter
tmux capture-pane -t <session:win.pane> 
tmux show-buffer

-S出力を正確にキャプチャするために、 、 、および-Eのオプション、およびcapture-paneペインのサイズで遊ぶことができるはずです。気が向いたらshow-panes、小さな正規表現を使用してペインの高さをキャプチャし、 を使用-S <height - 1>して最後の行だけをキャプチャすることもできます。

これを別のプログラムから次のように読み取るのは簡単です (たとえば、python で):

print Popen(['tmux', 'show-buffer'], stdout=PIPE).communicate()[0]
于 2014-07-13T07:10:32.673 に答える