2

我有以下脚本可以根据我的开发环境启动和设置 tmux:

#!/bin/bash

ENV="Test"
TMUX_SESSION="${ENV}LogMonSes"
TMUX_WINDOW="${ENV}LogMonWin"

tmux new-session -d -n "$TMUX_WINDOW" -s "$TMUX_SESSION" "ssh server1 tail -F /var/log/tomcat/application.log"
tmux split-window -v "ssh server2 sudo tail -F /var/log/postgresql/postgresql.log"
tmux attach-session -d -t "$TMUX_SESSION"

当我想退出 tmux 时,我按 Control-C 来杀死尾巴。这似乎会关闭窗格,但不会终止尾部进程。如果我重新登录到服务器,我会看到一堆没有被杀死的尾进程,我被迫手动执行。关于如何让 Control-C 杀死尾部进程的任何想法?

4

1 回答 1

2

“问题”在于 ssh - 而不是 tmux。

请参阅为什么我的远程进程在终止 ssh 会话后仍然运行?

添加-t到 ssh,现在一切正常:

tmux new-session -d -n "$TMUX_WINDOW" -s "$TMUX_SESSION" "ssh -t server1 tail -F /var/log/tomcat/application.log"
tmux split-window -v "ssh -t server2 sudo tail -F /var/log/postgresql/postgresql.log"
tmux attach-session -d -t "$TMUX_SESSION"
于 2013-02-28T17:43:18.543 回答