使用 tmux + teamocil 快速启动你的 services

Terminal · lvjian700 · Created at · Last by chenwenbo Replied at · 1627 hits
30

如果你也跟我一样工作在 micro services 架构下,或者你的 App 需要运行很多 services 进行支持,每次起一堆 services 是一个很痛苦的过程。本文将介绍如何使用 tmux + teamocil 一键启动你的 services。

tmux_teamocil.gif

Tools

按照如下连接安装工具即可:

  • tmux: 强大的 Terminal 环境
  • teamocil: 一个 Ruby gem,用来管理 windows 和 panels,这个工具是本文的主角

使用 teamocil

1.创建配置文件:

mkdir ~/.teamocil/
touch ~/.teamocil/project_name.yml

teamocil --edit project_name.yml

Trouble Shooting:

在使用 teamocil --edit project_name.yml 时,你可能会碰见 Permission 问题。请检查你的 $EDITOR 环境变量,如果没有配置,配置成你常用的 editor:

我配置的是 vim:

export EDITOR=vim

2.编辑配置文件:

windows:
  - name: sample
    root: ~/sts/services
    layout: tiled
    panes:
      - commands:
        - cd service-a
        - echo "start services a ..."
        - pwd
      - commands:
        - cd service-b
        - echo "start services b ..."
        - pwd

运行 teamocil

打开你常用的 Termnial 输入如下指令:

tmux
teamocil project_name

此时你便可看到本文开头的 gif 演示。

在使用 teamocil 时,建议在 bash 中配置自动补全:

zshrc:

compctl -g '~/.teamocil/*(:t:r)' teamocil

bash:

complete -W "$(teamocil --list)" teamocil

tmux 小技巧

如果你是第一次使用 tmux,你可能会跟我一样不知道如何操作 tmux,这里介绍一些小技巧:

  • Panels 间移动:Ctrl + b [上下左右键]
  • 回滚和选择日志( Copy 模式): Ctrl + b [
  • 关闭当前 window:Ctrl + b &
  • 列出当前 sessions:tmux ls
  • kill session:tmux kill-session -t {session name}

如果你跟我一样喜欢使用 vim 键位,可以将 Copy 模式 设置成 vim 键位:

~/.tmux.conf 中加入如下配置:

setw -g mode-keys vi

「软件匠艺社区」旨在传播匠艺精神,通过分享好的「工作方式」和「习惯」以帮助程序员更加快乐高效地编程。
共收到 3 条回复
1
hkliya · #1 ·

好像昨天在哪里看到过,原来是你写的啊

30
lvjian700 · #2 ·

#1楼 @hkliya 哈哈,是前两天才写的。

340
chenwenbo · #3 ·

新技能Get! 谢谢分享

需要 Sign In 后回复方可回复, 如果你还没有账号你可以 Sign Up 一个帐号。