新聞中心
在Linux操作系統(tǒng)中,我們經(jīng)常需要運(yùn)行多個(gè)程序,有些程序需要在后臺(tái)運(yùn)行,而有些程序需要在前臺(tái)運(yùn)行,這就需要我們將后臺(tái)程序調(diào)回前臺(tái)。本文將向您介紹。

一、查看后臺(tái)程序
在Linux系統(tǒng)中,我們可以使用“ps”命令來(lái)查看正在運(yùn)行的進(jìn)程。在控制臺(tái)輸入“ps aux”命令,即可查看所有運(yùn)行的進(jìn)程和它們的詳細(xì)信息。
這個(gè)命令會(huì)列出所有正在運(yùn)行的程序以及它們的PID(進(jìn)程ID),我們可以從中找到我們想要調(diào)回前臺(tái)的程序。
二、使用fg命令將后臺(tái)程序調(diào)回前臺(tái)
當(dāng)我們找到目標(biāo)程序的PID后,可以使用“fg”命令將它調(diào)回前臺(tái)。在控制臺(tái)輸入“fg PID”命令將PID替換為你要調(diào)回前臺(tái)程序的PID,然后按下回車鍵。
此時(shí),被調(diào)回的進(jìn)程將在終端上開(kāi)始顯示輸出,您也可以像以前一樣與它交互。當(dāng)您要退出程序時(shí),可以使用ctrl+c或ctrl+z命令退出。
三、使用jobs命令查看后臺(tái)程序
有時(shí)我們可能不確定進(jìn)程具體的PID,就需要使用“jobs”命令來(lái)查看當(dāng)前運(yùn)行的所有后臺(tái)程序。
在控制臺(tái)中輸入“jobs”命令就能夠查看正在運(yùn)行的后臺(tái)程序。系統(tǒng)會(huì)輸出所有正在運(yùn)行的后臺(tái)程序的相關(guān)信息,包括每個(gè)程序的PID、當(dāng)前狀態(tài)和命令行。
四、使用bg命令將程序轉(zhuǎn)為后臺(tái)運(yùn)行
有時(shí)候,我們希望將一個(gè)正在前臺(tái)運(yùn)行的程序轉(zhuǎn)為后臺(tái)運(yùn)行,可以使用“bg”命令。
在控制臺(tái)中,首先使用ctrl+z命令將程序暫停,然后使用“bg”命令將程序轉(zhuǎn)為后臺(tái)運(yùn)行。這個(gè)命令可以接收一個(gè)PID參數(shù),以指示要轉(zhuǎn)入后臺(tái)的進(jìn)程。
使用bg命令將程序轉(zhuǎn)為后臺(tái)運(yùn)行后,可以使用“jobs”命令來(lái)查看當(dāng)前正在運(yùn)行的后臺(tái)程序。
五、
在Linux系統(tǒng)中,我們可以使用“ps”命令查看正在運(yùn)行的進(jìn)程,通過(guò)“fg”命令將后臺(tái)程序調(diào)回前臺(tái),使用“bg”命令將前臺(tái)程序轉(zhuǎn)為后臺(tái)運(yùn)行。這些命令可以幫助我們有效地管理正在運(yùn)行的程序,提高工作效率。
相關(guān)問(wèn)題拓展閱讀:
- linux系統(tǒng)下如何從后臺(tái)啟動(dòng)進(jìn)程?
linux系統(tǒng)下如何從后臺(tái)啟動(dòng)進(jìn)程?
你得查看后臺(tái)存在的進(jìn)程 #jobs
#fg
#bg
兩個(gè)命令是調(diào)入前臺(tái)和后臺(tái)的命令
在命令后面加上一個(gè) &
比如:
rm -rf /tmp/ &
Linux 技巧:讓進(jìn)程在后臺(tái)可靠運(yùn)行的幾種方法
WeiboGoogle+用電子郵件發(fā)送本頁(yè)面
我們經(jīng)常會(huì)碰到這樣的問(wèn)題,用 telnet/ssh 登錄了遠(yuǎn)程的 Linux 服務(wù)器,運(yùn)行了一些耗時(shí)較長(zhǎng)的任務(wù), 結(jié)果卻由于網(wǎng)絡(luò)的不穩(wěn)定導(dǎo)致任務(wù)中途失敗。如何讓命令提交后不受本地關(guān)閉終端窗口/網(wǎng)絡(luò)斷開(kāi)連接的干擾呢?下面舉了一些例子, 您可以針對(duì)不同的迅?jìng)鋱?chǎng)景選擇不同的方式來(lái)處理這個(gè)問(wèn)題。
nohup/setsid/&
場(chǎng)景:
如果只是臨時(shí)有一個(gè)命令需要長(zhǎng)時(shí)間運(yùn)行,什么方法能最簡(jiǎn)便的保證它在后臺(tái)穩(wěn)定運(yùn)行呢?
hangup 名稱的來(lái)由
在 Unix 的早期版本中,每個(gè)終端都會(huì)通過(guò) modem 和系統(tǒng)通訊。當(dāng)用戶 logout 時(shí),modem 就會(huì)掛斷(hang up)。 同理,當(dāng) modem 斷開(kāi)連接時(shí),就會(huì)給終端發(fā)送 hangup 信號(hào)來(lái)通知其關(guān)閉所有子進(jìn)程。
解決方法:
我們知道,當(dāng)用戶注銷(logout)或者網(wǎng)絡(luò)斷開(kāi)時(shí),終端會(huì)收到 HUP(hangup)信號(hào)從而關(guān)閉其所有子進(jìn)程。因此,我們罩喊的解決辦法就有兩種途徑:要么讓進(jìn)程忽略 HUP 信號(hào),要么讓進(jìn)程運(yùn)行在新的會(huì)話里從而成為不屬于此終端的子進(jìn)程。
1. nohup
nohup 無(wú)疑是我們首先想到的辦法。顧名思義,nohup 的用途就是讓提交的命令忽略 hangup 信號(hào)。讓我們先來(lái)看一下 nohup 的幫助信息:
NOHUP(1)User CommandsNOHUP(1) NAMEnohup – run a command immune to hangups, with output to a non-tty SYNOPSISnohup COMMAND …nohup OPTION DESCRIPTIONRun COMMAND, ignoring hangup signals.help display this help and exitversionoutput version information and exit
可見(jiàn),nohup 的使用是十分方便的,只需在要處理的命令前加上 nohup 即可,標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤缺省會(huì)被重定向到 nohup.out 文件中。一般我們可在結(jié)尾加上”&”來(lái)將命令同時(shí)放入后臺(tái)運(yùn)行,也可用”>filename 2>&1″來(lái)更改缺省的重定向文件名。
# nohup ping www.ibm.com & 3059nohup: appending output to `nohup.out’# ps -ef |grep 3059root:06 pts/:00:00 ping www.ibm.comroot:06 pts/:00:00 grep 3059#
2。setsid
nohup 無(wú)疑能通過(guò)忽略 HUP 信號(hào)來(lái)使我們的進(jìn)程避免中途被中斷,但如果我們換個(gè)角度思考,如果我們的進(jìn)程不屬于接受 HUP 信號(hào)的終端的子進(jìn)畝悶毀程,那么自然也就不會(huì)受到 HUP 信號(hào)的影響了。setsid 就能幫助我們做到這一點(diǎn)。讓我們先來(lái)看一下 setsid 的幫助信息:
SETSID(8) Linux Programmer’s Manual SETSID(8) NAMEsetsid – run a program in a new session SYNOPSISsetsid program DESCRIPTIONsetsid runs a program in a new session.
可見(jiàn) setsid 的使用也是非常方便的,也只需在要處理的命令前加上 setsid 即可。
# setsid ping www.ibm.com# ps -ef |grep www.ibm.comroot:28 ?:00:00 ping www.ibm.comroot:29 pts/:00:00 grep www.ibm.com#
值得注意的是,上例中我們的進(jìn)程 ID(PID)為31094,而它的父 ID(PPID)為1(即為 init 進(jìn)程 ID),并不是當(dāng)前終端的進(jìn)程 ID。請(qǐng)將此例與nohup 例中的父 ID 做比較。
3。&
這里還有一個(gè)關(guān)于 subshell 的小技巧。我們知道,將一個(gè)或多個(gè)命名包含在“()”中就能讓這些命令在子 shell 中運(yùn)行中,從而擴(kuò)展出很多有趣的功能,我們現(xiàn)在要討論的就是其中之一。
當(dāng)我們將”&”也放入“()”內(nèi)之后,我們就會(huì)發(fā)現(xiàn)所提交的作業(yè)并不在作業(yè)列表中,也就是說(shuō),是無(wú)法通過(guò)jobs來(lái)查看的。讓我們來(lái)看看為什么這樣就能躲過(guò) HUP 信號(hào)的影響吧。
# (ping www.ibm.com &)# ps -ef |grep www.ibm.comroot:13 pts/:00:00 ping www.ibm.comroot:13 pts/:00:00 grep www.ibm.com#
關(guān)于linux 后臺(tái)調(diào)到前臺(tái)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
文章標(biāo)題:如何在Linux中將后臺(tái)程序調(diào)回前臺(tái)(linux后臺(tái)調(diào)到前臺(tái))
瀏覽路徑:http://www.5511xx.com/article/dhjghgp.html


咨詢
建站咨詢
