天天看點

linux/openEuler ssh關閉背景程式不終止

通常ssh 運作以後,bash等都是他的子程式,一旦ssh關閉,控制程序收到SIGHUP信号退出,系統将所有相關程序殺掉!! 導緻一旦ssh關閉,執行中的任務就取消了

解決方法:

1.nohup指令

nohup command(指令)  &

此後,如果你斷開了ssh,程式依舊運作。此種方式的缺點是,應用程式沒有互動界面了,程式的輸出将會輸出的一個xxx.out檔案中,而且以後無法在界面控制程式的結束。必須通過kill的方式。是以這種方式顯得很簡單粗魯,很少使用。

2.screen指令

如何安裝 screen 指令. 大部分 linux 系統都預設安裝了 screen 指令,先檢視下否則有這個工具。. 如果運作 screen 後提示 command not found,那麼說明這個工具還沒有安裝。. CentOS 系統執行以下指令安裝:. yum install screen.  Debian/Ubuntu 系統執行以下指令安裝: apt-get install screen.

運作screen

[[email protected] odoo_14]$ screen 
           

 回車後進入Screen子界面,此時putty标題欄會訓示處于子界面狀态,然後運作你的程式,然後按下Ctrl+A後擡起,然後按下d鍵,此時切換回主界面,Putty的視窗标題欄也會訓示,此時就是斷開ssh,程式仍在運作。

檢視所有子界面:35470是字界面的pid

[[email protected] odoo_14]$ screen -ls
There is a screen on:
	354740.pts-0.localhost	(Detached)
           

 切換screen子界面

[[email protected] odoo_14]$ screen -r 354740
           

結束子界面

screen -X -S 35470  quit
           

 參考文章:[轉載][整理]解決SSH退出登陸後保持程序繼續在背景運作 - 簡書 (jianshu.com)

繼續閱讀