在雲服務器 ECS Linux 系統中,一般咱們在執行一些運行時間比較長的任務時,必須等待執行完畢才能斷開 SSH 鏈接或關閉客戶端軟件,不然可能會致使執行中斷。本文介紹幾種保障程序在用戶退出登陸後持續運行的方法。php
使用管理終端執行
經過 管理終端 會登陸服務器的本地會話(console)口,在該終端執行的程序不會受到 SSH 登陸用戶退出的影響。具體操做方式以下:html
1. 經過 管理終端 登陸服務器。shell
2. 執行所需程序或腳本。小程序
3. 下次須要查看任務執行狀態時,再次鏈接管理終端查看便可。bash
使用 nohup 執行
nohup 的做用顧名思義,它使得後面的命令不會響應掛斷(SIGHUP)信號。也就是說,經過遠程登陸執行 nohup 後,即便退出登陸後,程序仍是會正常執行。一般狀況下,nohup 命令最後會跟上 & 字符,表示將這個命令放至後臺執行,這樣才能真正作到將這個命令放至後臺持續的執行。服務器
操做示例:
1. 正常的執行命令爲 bash hello.sh,執行結果爲每秒輸出一行的小程序:ssh
2. 在命令頭尾分別加上 nohup 和 &,變爲 nohup bash hello.sh &,能夠看到 nohup 輸出了一行信息,再按一下回車鍵就跳回了 shell 命令行,此時命令已經在後臺執行了,nohup 將命令的輸出重定向至當前目錄的 nohup.out 文件中。同時注意到 nohup 會將對應程序的 PID 輸出,PID 可用於須要中斷進程時 kill 進程。jsp
3. 經過 tail -f nohup.out 能夠持續的查看 nohup.out 的輸出,達到監視程序的效果。ide
4. 在命令中也可使用重定向將程序的輸出改成本身想要的文件名,如 nohup bash hello.sh >hello.log &,則程序的輸出就會寫到 hello.log 文件中。工具
5. 若程序不會自動退出,那麼此時須要使用 kill 命令來結束進程。好比,可使用命令 kill -TRM <PID> 來操做,其中 PID 即爲以前 nohup 輸出的值,在此例中該值爲 1231。
使用限制:
nohup 一般用於執行無干預的自動化程序或腳本,沒法完成帶有交互的操做。
使用 screen 執行
安裝 sceen 工具
Linux 系統默認未自帶 screen 工具,須要先進行安裝:
-
CentOS 系列系統: yum install screen
-
Ubuntu 系列系統: sudo apt-get install screen
使用簡介
1. 建立 screen 窗口
1 2 3 |
|
2. 列出 screen 進程,並進入所需 screen
1 |
|
以下圖
而後進行所需操做,好比運行腳本、執行程序等等。
以下圖示例:建立ftp鏈接後臺下載傳輸文件
3. 退出保存
前述 ftp 操做示例開始傳輸後,在窗口中鍵入Ctrl+a 鍵,再按下 d 鍵,就能夠退出 SSH 登陸,但不會影響 screen 程序的執行。
4. 保存會話以便繼續執行
能夠利用 screen 這種功能來管理的遠程會話。操做步驟概述:
-
正常 SSH 登陸服務器
-
建立 screen 窗口
-
執行所需任務
-
須要臨時中斷退出時,按 Ctrl +d 保存退出
-
須要繼續工做時,再次 SSH 登陸服務器,而後直接執行 screen -r -d 恢復會話便可。
以上就是Linux中SSH客戶端斷開後保持進程繼續運行配置方法的具體介紹的詳細內容,更多請關注php中文網其它相關文章!