2013-02-28 35 views
2

我有以下腳本來啓動和設置TMUX基於我的開發環境:按Ctrl-C在TMUX關閉窗口窗格但不退出尾-F

#!/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我打控制 - C殺死尾巴。這似乎關閉窗格,但不會終止尾部進程。如果我重新登錄服務器,我會看到一堆沒有被殺死的尾部進程,我不得不手動執行它。關於如何讓Control-C殺死尾部進程的任何想法?

回答

2

「問題」是用ssh - 而不是tmux。

Why does my remote process still run after killing an ssh session?

新增-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"