我正在使用 tmux 来运行服务器控制台。要检查控制台是否正在应答,我想使用send-keys
在控制台上运行命令:
tmux send-keys -t mysess:mywin "show info" Enter
(实际上,我目前正在将完整的控制台输出记录到文件中并读取最后一行,但我希望存在更好的解决方案。)
tmux pipe-pane -o -t mysess:mywin 'cat >> mysess-mywin.log'
您访问输出的方式的上下文将影响该解决方案是否更好,但这可能有效:
tmux send-keys -t <session:win.pane> '<command>' Enter
tmux capture-pane -t <session:win.pane>
tmux show-buffer
你应该能够玩-S
, and -E
的选项capture-pane
以及窗格的大小,以准确捕获输出。如果您愿意,您也可以使用show-panes
和一个小的正则表达式来捕获窗格的高度,然后使用-S <height - 1>
只捕获最后一行。
然后很容易从另一个程序中读取它,如下所示(例如,在 python 中):
print Popen(['tmux', 'show-buffer'], stdout=PIPE).communicate()[0]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)