新聞中心
在Linux系統(tǒng)中,有時(shí)我們需要在后臺(tái)執(zhí)行某些任務(wù),以便在終端窗口關(guān)閉后也能繼續(xù)運(yùn)行。這時(shí),將任務(wù)轉(zhuǎn)入后臺(tái)就非常有用了。本文將介紹如何在Linux系統(tǒng)中將任務(wù)轉(zhuǎn)入后臺(tái),以及如何查看和管理后臺(tái)任務(wù)。

成都創(chuàng)新互聯(lián)公司:2013年至今為各行業(yè)開拓出企業(yè)自己的“網(wǎng)站建設(shè)”服務(wù),為超過千家公司企業(yè)提供了專業(yè)的網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)和網(wǎng)站推廣服務(wù), 按需規(guī)劃網(wǎng)站由設(shè)計(jì)師親自精心設(shè)計(jì),設(shè)計(jì)的效果完全按照客戶的要求,并適當(dāng)?shù)奶岢龊侠淼慕ㄗh,擁有的視覺效果,策劃師分析客戶的同行競爭對(duì)手,根據(jù)客戶的實(shí)際情況給出合理的網(wǎng)站構(gòu)架,制作客戶同行業(yè)具有領(lǐng)先地位的。
一、將任務(wù)轉(zhuǎn)入后臺(tái)
在Linux系統(tǒng)中,我們可以使用以下命令將任務(wù)轉(zhuǎn)入后臺(tái):
1. 使用“&”符號(hào)
在終端窗口中輸入命令,并在最后加上“&”符號(hào),即可將該命令轉(zhuǎn)入后臺(tái)執(zhí)行。例如,輸入以下命令:
“`
$ nohup python3 test.py &
“`
其中,“nohup”命令可以使后臺(tái)任務(wù)不受終端窗口關(guān)閉的影響,“python3 test.py”是要執(zhí)行的任務(wù),“&”符號(hào)表示將該任務(wù)轉(zhuǎn)入后臺(tái)執(zhí)行。
2. 使用“nohup”命令
在終端窗口中輸入以下命令,即可使用“nohup”命令將任務(wù)轉(zhuǎn)入后臺(tái)執(zhí)行:
“`
$ nohup command &
“`
其中,“command”為要執(zhí)行的命令。
3. 使用“ctrl + z”和“bg”命令
在終端窗口中執(zhí)行命令時(shí),可以使用“ctrl + z”暫停該命令的執(zhí)行。此時(shí),該任務(wù)會(huì)停留在前臺(tái)。輸入“bg”命令即可將該任務(wù)放入后臺(tái)繼續(xù)執(zhí)行。例如,輸入以下命令:
“`
$ python3 test.py
“`
按下“ctrl + z”暫停該任務(wù)的執(zhí)行,然后輸入“bg”命令將該任務(wù)放入后臺(tái)繼續(xù)執(zhí)行。
二、查看后臺(tái)任務(wù)
在Linux系統(tǒng)中,我們可以使用以下命令查看后臺(tái)任務(wù):
1. 使用“jobs”命令
輸入“jobs”命令,即可查看當(dāng)前所有的后臺(tái)任務(wù)。例如:
“`
$ jobs
“`
2. 使用“ps”命令
輸入“ps”命令,可以查看當(dāng)前系統(tǒng)中所有的進(jìn)程。使用“ps -ef”命令可以查看詳細(xì)信息。其中,“-e”表示顯示所有進(jìn)程,“-f”表示以完整格式顯示信息。我們可以通過篩選特定的關(guān)鍵詞來查找后臺(tái)任務(wù)。例如,輸入以下命令:
“`
$ ps -ef | grep python
“`
可以查找所有包含“python”關(guān)鍵詞的后臺(tái)任務(wù)。
三、管理后臺(tái)任務(wù)
在Linux系統(tǒng)中,我們可以使用以下命令管理后臺(tái)任務(wù):
1. 使用“fg”命令
輸入“fg”命令加上任務(wù)編號(hào),可以將某個(gè)后臺(tái)任務(wù)切換到前臺(tái)執(zhí)行。例如,輸入以下命令:
“`
$ fg %1
“`
將任務(wù)編號(hào)為1的后臺(tái)任務(wù)切換到前臺(tái)執(zhí)行。
2. 使用“kill”命令
輸入“kill”命令加上任務(wù)編號(hào),可以強(qiáng)制終止某個(gè)后臺(tái)任務(wù)。例如,輸入以下命令:
“`
$ kill %1
“`
將任務(wù)編號(hào)為1的后臺(tái)任務(wù)強(qiáng)制終止。
本文介紹了如何在Linux系統(tǒng)中將任務(wù)轉(zhuǎn)入后臺(tái),如何查看和管理后臺(tái)任務(wù)。通過將任務(wù)轉(zhuǎn)入后臺(tái),我們可以讓任務(wù)在終端窗口關(guān)閉后繼續(xù)執(zhí)行,提高了工作效率。管理后臺(tái)任務(wù)時(shí),需要謹(jǐn)慎操作,避免誤操作導(dǎo)致數(shù)據(jù)丟失等問題。
相關(guān)問題拓展閱讀:
- shell腳本讓進(jìn)程在后臺(tái)運(yùn)行以及進(jìn)程后臺(tái)轉(zhuǎn)前臺(tái)
- linux下怎么讓一個(gè)程序在后臺(tái)運(yùn)行
shell腳本讓進(jìn)程在后臺(tái)運(yùn)行以及進(jìn)程后臺(tái)轉(zhuǎn)前臺(tái)
我們計(jì)算的程序都是周期很長的,通常要幾個(gè)小時(shí)甚至一個(gè)星期。我們用的環(huán)境是用 putty 遠(yuǎn)程連接到日本 Linux 服務(wù)器。所以使程序在后臺(tái)跑有以下三個(gè)好處:
1:我們這邊是否關(guān)機(jī)不影響日本那邊的程序運(yùn)行。(不會(huì)像以前那樣,我們這網(wǎng)絡(luò)一斷開,或一關(guān)機(jī),程序就斷掉或找不到數(shù)據(jù),跑了幾天的程序只能重頭再來,很是煩惱)
2:不影響計(jì)算效率
3:讓程序在后臺(tái)跑后,不會(huì)占據(jù)終端,我們可以用終端做別的事情。
方法有很多,這里主要列舉兩種。假如我們有程序 pso.cpp ,通過編譯后產(chǎn)生
可執(zhí)行文件
pso ,我們要使 pso 在 linux 服務(wù)器后臺(tái)執(zhí)行。當(dāng)客戶端關(guān)機(jī)后重新登入服務(wù)器后繼續(xù)查看本來在終端輸出的運(yùn)行結(jié)果。(假設(shè)操作都在當(dāng)前目錄下)
方法1在終端輸入命令:
解釋:將 pso 直接放在后臺(tái)運(yùn)行,并把終端輸出存放在當(dāng)前目錄下的 log.file 文件中。
當(dāng)客戶端關(guān)機(jī)后重新登陸服務(wù)器后,直接查看 pso.file 文件就可看執(zhí)行結(jié)果(命令:$ cat pso.file )。
方法2在終端輸入命令:
解釋: nohup 就是不掛起的意思,將 pso 直接放在后臺(tái)運(yùn)行,并把終端輸出存放在當(dāng)前
目錄下的 pso.file 文件中。當(dāng)客戶端關(guān)機(jī)后重新登陸服務(wù)器后,直接查看 pso.file
文件就可看執(zhí)行結(jié)果(命令: #cat pso.file )。
注:如果要使在前天執(zhí)行任務(wù)放到后臺(tái)運(yùn)行,則先要用 ctrl+z 掛起該任務(wù),然后用 bg 使之后臺(tái)執(zhí)行。
附:
在 Linux 中,如果要讓進(jìn)程在后臺(tái)運(yùn)行,一般情況下,我們?cè)诿詈竺婕由?& 即可,實(shí)際上,這樣是將命令放入到一個(gè)作業(yè)隊(duì)列中了:
對(duì)于已經(jīng)在前臺(tái)執(zhí)行的命令,也可以重新放到后臺(tái)執(zhí)行,首先按 ctrl+z 暫停已經(jīng)運(yùn)行的進(jìn)程,然后使用 bg 命令將停止的作業(yè)放到后臺(tái)運(yùn)行:
但是如上方到后臺(tái)執(zhí)行的進(jìn)程,其父進(jìn)程還是當(dāng)前終端 shell 的進(jìn)程,而一旦父進(jìn)程退出,則會(huì)發(fā)送 hangup 信號(hào)給所有子進(jìn)程,子進(jìn)程收到 hangup 以后也會(huì)退出。如果我們要在退出 shell 的時(shí)候繼續(xù)運(yùn)行進(jìn)程,則需要使用 nohup 忽略 hangup 信號(hào),或者 setsid 將將父進(jìn)程設(shè)為 init 進(jìn)程(進(jìn)程號(hào)為 1 )
上面的試驗(yàn)演示了使用 nohup/setsid 加上 & 使進(jìn)程在后臺(tái)運(yùn)行,同時(shí)不受當(dāng)前 shell 退出的影響。那么對(duì)于已經(jīng)在后臺(tái)運(yùn)行的進(jìn)程,該怎么辦呢?可以使用 disown 命令:
另外還有一種方法,即使將進(jìn)程在一個(gè) subshell 中執(zhí)行,其實(shí)這和 setsid 異曲同工。方法很簡單,將命令用括號(hào)() 括起來即可:
注:本文試驗(yàn)環(huán)境為 Red Hat Enterprise Linux AS release 4 (Nahant Update 5) , shell 為 /bin/bash ,不同的 OS 和 shell 可能命令有些不一樣。例如 AIX 的 ksh ,沒有 disown ,但是可以使用 nohup -p PID 來獲得 disown 同樣的效果。
還有一種更加強(qiáng)大的方式是使用 screen ,首先創(chuàng)建一個(gè)斷開模式的虛擬終端,然后用 -r 選項(xiàng)重新連接這個(gè)虛擬終端,在其中執(zhí)行的任何命令,都能達(dá)到 nohup 的效果,這在有多個(gè)命令需要在后臺(tái)連續(xù)執(zhí)行的時(shí)候比較方便:
linux下怎么讓一個(gè)程序在后臺(tái)運(yùn)行
nohup 程序名 >> output.txt &
其中,output.txt 是把程序輸出重定向到文件里。
今后可以查看程序輸出內(nèi)容。
nohop 進(jìn)程名 &
關(guān)于linux將前臺(tái)程序轉(zhuǎn)入后臺(tái)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
標(biāo)題名稱:Linux輕松將任務(wù)轉(zhuǎn)入后臺(tái)(linux將前臺(tái)程序轉(zhuǎn)入后臺(tái))
文章起源:http://fisionsoft.com.cn/article/dphgogc.html


咨詢
建站咨詢
