用 tmux 同时启动和监控后端开发环境中的所有程序

2018-01-08 07:02:22 +08:00
 Livid

在大部分的 web app 开发环境中,通常会需要启动不只一个程序。比如一个用 Tornado 或者 Flask 写的的 Python web app,通常还需要启动处理异步操作的 rq 或 celery。

在生产环境中,这些程序可能会使用一个类似 supervisord 这样的进程管理器。但是在开发环境中,你可能会需要查看这些程序输出到 console 中的输出。

我们可以创建一个这样的 bash 脚本,用 tmux 来同时启动我们需要的所有程序,并分屏显示:

#!/bin/sh
tmux new-session -d 'python app.py'
tmux split-window -h 'rqworker'
tmux -2 attach-session -d

在上面的例子中,python app.py 是启动之后在左侧分屏显示的程序,rqworker 在右侧。如果把第二行中的 -h 换成 -v 那么将会使用水平方式分屏显示。

如果你需要切换分屏窗口中的焦点,那么使用快捷键 Ctrl-B 然后加方向键即可。

7338 次点击
所在节点    DevOps
15 条回复
siteshen
2018-01-08 08:01:27 +08:00
https://github.com/tmuxinator/tmuxinator 让这个更方便,可管理多个独立的 tmux session。

tmuxinator project1-dev
tmuxinator project2-stage
tmuxinator project3-prod
XiaoFaye
2018-01-08 08:04:20 +08:00
那谁来监控 tmux?
mywaiting
2018-01-08 08:41:05 +08:00
开发机挂着四个 24 寸的显示器,每个显示器开四个 putty 窗口........
Keyes
2018-01-08 08:54:55 +08:00
@mywaiting tmux 上阵的好机会,直接把一个终端切 4 块
hnyoumfk
2018-01-08 09:38:26 +08:00
可以用[Tmuxp]( https://github.com/tony/tmuxp)来管理 tmux,定义脚本更方便
lululau
2018-01-08 10:11:57 +08:00
我用 tmux-resurrect
alexsunxl
2018-01-08 10:33:32 +08:00
这个是保存 tmux session 的意思吗
tmux 有插件可以 save load session
pangliang
2018-01-08 11:07:51 +08:00
有 oh-my-zsh , 同样 也有 oh-my-tmux

https://github.com/pangliang/oh-my-tmux
robinlovemaggie
2018-01-08 11:20:15 +08:00


tmux_init()
{
tmux new-session -s "kumu" -d -n "local" # 开启一个会话
tmux new-window -n "other" # 开启一个窗口
tmux split-window -h # 开启一个竖屏
tmux split-window -v "top" # 开启一个横屏,并执行 top 命令
tmux -2 attach-session -d # tmux -2 强制启用 256color,连接已开启的 tmux
}

# 判断是否已有开启的 tmux 会话,没有则开启
if which tmux 2>&1 >/dev/null; then
test -z "$TMUX" && (tmux attach || tmux_init)
fi
lqf96
2018-01-08 12:25:05 +08:00
iterm 和 tmux 的整合还是很开心的,基本是无缝的
secsilm
2018-01-08 13:04:09 +08:00
坑还是有很多的
h4lbhg1G
2018-01-08 13:41:57 +08:00
啊,这是站长么!

如果是 Windows 推荐使用我的 CommandTrayHost,不仅支持显示隐藏日志,还支持秒级的 crontab 自动重启和检测是否退出。
myself659
2018-01-08 13:44:30 +08:00
tmux 我还是小白一个
scriptB0y
2018-01-08 14:19:13 +08:00
https://github.com/tony/tmuxp

原生的 send-keys 写起来太难读了
Andrman
2018-01-08 23:57:53 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/420921

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX