經驗分享:分析程式如何在Linux下後臺執行—Linux就得這麼學!
一、為什麼要使程式在後臺執行
我們計算的程式都是週期很長的,通常要幾個小時甚至一個星期。我們用的環境是用putty遠端連線到日本Linux伺服器。所以使程式在後臺跑有以下三個好處:
1:我們這邊是否關機不影響日本那邊的程式執行。(不會像以前那樣,我們這網路一斷開,或一關機,程式就斷掉或找不到資料,跑了幾天的程式只能重頭再來,很是煩惱)
2:不影響計算效率
2:讓程式在後臺跑後,不會佔據終端,我們可以用終端做別的事情。
二、怎麼樣使程式在後臺執行
方法有很多,這裡主要列舉兩種。假如我們有程式pso.cpp,通過編譯後產生可執行檔案pso,我們要使pso在linux伺服器後臺執行。
當客戶端關機後重新登入伺服器後繼續檢視本來在終端輸出的執行結果。(假設操作都在當前目錄下)
方法1在終端輸入命令:
# ./pso > pso.file 2>&1 &
解釋:將pso直接放在後臺執行,並把終端輸出存放在當前目錄下的pso.file檔案中。
當客戶端關機後重新登陸伺服器後,直接檢視pso.file檔案就可看執行結果(命
令:#cat pso.file )。
方法2在終端輸入命令:
# nohup ./pso > pso.file 2>&1 &
解釋:nohup就是不掛起的意思,將pso直接放在後臺執行,並把終端輸出存放在當前
目錄下的pso.file檔案中。當客戶端關機後重新登陸伺服器後,直接檢視pso.file
檔案就可看執行結果(命令:#cat pso.file )。
三、常用任務管理命令
# jobs //檢視任務,返回任務編號n和程序號
# bg %n //將編號為n的任務轉後臺執行
# fg %n //將編號為n的任務轉前臺執行
# ctrl+z //掛起當前任務
# ctrl+c //結束當前任務
注:如果要使在前天執行任務放到後臺執行,則先要用ctrl+z掛起該任務,然後用bg使之後臺執行。