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

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


咨詢
建站咨詢
