我們經常會碰到一種情況,用ssh遠程登錄到linux服務器後,啓動一個腳本跑任務,如果這個任務耗時比較久,就得等着,如果此時由於網絡原因,ssh連接斷了,再重新登錄服務器,原來的任務就沒了,得重新運行一次。有沒有辦法讓任務切到後臺,ssh退出後還能繼續運行呢? 當然有~,而且很簡單:
1. 在ssh shell中運行腳本,比如我運行一個批量下載腳本:
python download-app-annie.py
2. 按下ctrl-z中斷腳本運行,此時系統提示:
^Z
[1]+ Stopped python download-app-annie.py
意思是編號爲1的任務掛起了,[1]就是任務的編號,裏面的數字也可能是2,3,4..
3. 輸入命令:bg 1
這個命令將1號任務切換到後臺執行
4. 輸入命令:disown -h %1
這個命令的意思是將1號任務從當前shell的任務列表中移除,並且忽略HUP信號,這樣,即使當前Shell結束了,這個任務也不會被結束,而是繼續留在後臺執行。