1、爲何要使程序在後臺執行linux
咱們計算的程序都是週期很長的,一般要幾個小時甚至一個星期。咱們用的環境是用putty遠程鏈接到日本Linux服務器。因此使程序在後臺跑有如下三個好處:服務器
1:咱們這邊是否關機不影響日本那邊的程序運行。(不會像之前那樣,咱們這網絡一斷開,或一關機,程序就斷掉或找不到數據,跑了幾天的程序只能重頭再來,非常煩惱)網絡
2:不影響計算效率3d
2:讓程序在後臺跑後,不會佔據終端,咱們能夠用終端作別的事情。blog
2、怎麼樣使程序在後臺執行進程
方法有不少,這裏主要列舉兩種。假如咱們有程序pso.cpp,經過編譯後產生可執行文件pso,咱們要使pso在linux服務器後臺執行。當客戶端關機後從新登入服務器後繼續查看原本在終端輸出的運行結果。(假設操做都在當前目錄下)get
方法1在終端輸入命令:io
# ./pso > pso.file 2>&1 & 編譯
解釋:將pso直接放在後臺運行,並把終端輸出存放在當前目錄下的pso.file文件中。class
當客戶端關機後從新登錄服務器後,直接查看pso.file文件就可看執行結果(命
令:#cat pso.file )。
方法2在終端輸入命令:
# nohup ./pso > pso.file 2>&1 &
解釋:nohup就是不掛起的意思,將pso直接放在後臺運行,並把終端輸出存放在當前
目錄下的pso.file文件中。當客戶端關機後從新登錄服務器後,直接查看pso.file
文件就可看執行結果(命令:#cat pso.file )。
3、經常使用任務管理命令
# jobs //查看任務,返回任務編號n和進程號
# bg %n //將編號爲n的任務轉後臺運行
# fg %n //將編號爲n的任務轉前臺運行
# ctrl+z //掛起當前任務
# ctrl+c //結束當前任務
注:若是要使在前天執行任務放到後臺運行,則先要用ctrl+z掛起該任務,而後用bg使以後臺執行。