3
如果我有一個像rails c
或guard
這樣的進程退出時,tmux窗口也退出。當我退出tmux窗口中的prossess時,tmux窗口退出
當我只想重啓例如導軌控制檯時,這不太實際。
我可以在tmux中防止這種行爲嗎?
如果我有一個像rails c
或guard
這樣的進程退出時,tmux窗口也退出。當我退出tmux窗口中的prossess時,tmux窗口退出
當我只想重啓例如導軌控制檯時,這不太實際。
我可以在tmux中防止這種行爲嗎?
您可以設置remain-on-exit
窗口選項,以防止tmux在運行該窗口的進程結束時關閉窗口(窗格)。
setw remain-on-exit on
會話選項set-remain-on-exit
也可;利用它,您可以安排會話的所有窗口/窗格自動打開remain-on-exit
。
經過remain-on-exit
窗格的處理結束時,窗格將顯示消息「窗格是死」,直到它與所述命令kill-pane
(或kill-window
)關閉,或者一個新的命令與respawn-pane
(或respawn-window
開始有)。
respawn-pane 'rails c' # respawn with a specific command
respawn-pane # respawn whatever the previous command
如果你不是太在意乾淨退出窗格的現有流程,那麼你甚至可以重新啓動窗格在沒有先退出當前過程是這樣的:
respawn-pane -k # kill current process (if any) and respawn the previous command
偉大的答案!謝謝! –
如果進程退出並返回代碼!= 0,是否可以執行此操作('退出時保留')? – blueyed
@blueyed:「退出時剩餘」代碼沒有測試退出狀態,但可以將其作爲命令的最後一步進行調整。只有非零出口仍然可以用'neww'zsh -l ||之類的東西來啓動窗口tmux set -q「保持退出」,如果'keep-on-exit'通常在您的配置中關閉(如果它通常打開,則更改爲'&&')。這隻會對單窗格實際起作用,不過因爲有一個分割窗格切換整個窗口的選項可能不是您想要的。 –