通過tmux讓程式在ssh退出後保持執行

2021-07-26 14:49:20 字數 774 閱讀 6415

ssh遠端登入到linux伺服器,執行乙個程式,在ssh退出時,該程式也將退出。

一種解決辦法是通過nohup,此外也可以通過tmux解決該問題,並且每次斷開,再登入ssh都能回到原來的狀態,提供一種比較好的互動體驗。

tmux和screen類似,是乙個終端復用器。

安裝tmux後,在執行任務前先執行tmux,建立乙個缺省會話。

tmux
為了便於管理,給會話重新命名

ctrl + b | $
ctrl+b組合鍵輸入後,再輸入$重新命名會話為有意義的名稱

此時在啟動需要長期執行的目標程式比如:

top
執行dettach退出tmux

ctrl + b | d
ctrl+b組合鍵輸入後,再輸入d

之後需要再次進入先前會話時,可以輸入

tmux attach -t session_name
此外,tmux是支援多會話的,可以同時存在多個會話

ctrl + b | s
ctrl+b組合鍵輸入後,再輸入s可以顯示會話列表,並且支援切換

為了方便,可以在新建會話時直接指定其名稱

tmux new -s session_name

讓程式在崩潰時體面的退出之SEH Dump檔案

在我上篇文章 讓程式在崩潰時體面的退出之seh 中講解了seh中try except可以捕捉異常,避免程式的崩潰,並且可以在處理完異常之後,還能決定進該程序如何執行。對於應用程式的使用者來說,並不知道異常的發生。但是對於軟體的開發者來說,雖然避免了程式的崩潰,可是這樣可以讓程式崩潰的缺陷存在於 中,...

讓程式在崩潰時體面的退出之SEH Dump檔案

在我上篇文章 讓程式在崩潰時體面的退出之seh 中講解了seh中try except可以捕捉異常,避免程式的崩潰,並且可以在處理完異常之後,還能決定進該程序如何執行。對於應用程式的使用者來說,並不知道異常的發生。但是對於軟體的開發者來說,雖然避免了程式的崩潰,可是這樣可以讓程式崩潰的缺陷存在於 中,...

實現關閉ssh繼續執行程式 tmux

問題1 為什麼ssh一關閉,程式就不再執行了 元凶 sighup 訊號 讓我們來看看為什麼關掉視窗 斷開連線會使得正在執行的程式死掉。在linux unix中,有這樣幾個概念 程序組 process group 乙個或多個程序的集合,每乙個程序組有唯一乙個程序組id,即程序組長程序的id。會話期 s...