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

一、查看后臺程序
在Linux系統(tǒng)中,我們可以使用“ps”命令來查看正在運行的進程。在控制臺輸入“ps aux”命令,即可查看所有運行的進程和它們的詳細信息。
這個命令會列出所有正在運行的程序以及它們的PID(進程ID),我們可以從中找到我們想要調回前臺的程序。
二、使用fg命令將后臺程序調回前臺
當我們找到目標程序的PID后,可以使用“fg”命令將它調回前臺。在控制臺輸入“fg PID”命令將PID替換為你要調回前臺程序的PID,然后按下回車鍵。
此時,被調回的進程將在終端上開始顯示輸出,您也可以像以前一樣與它交互。當您要退出程序時,可以使用ctrl+c或ctrl+z命令退出。
三、使用jobs命令查看后臺程序
有時我們可能不確定進程具體的PID,就需要使用“jobs”命令來查看當前運行的所有后臺程序。
在控制臺中輸入“jobs”命令就能夠查看正在運行的后臺程序。系統(tǒng)會輸出所有正在運行的后臺程序的相關信息,包括每個程序的PID、當前狀態(tài)和命令行。
四、使用bg命令將程序轉為后臺運行
有時候,我們希望將一個正在前臺運行的程序轉為后臺運行,可以使用“bg”命令。
在控制臺中,首先使用ctrl+z命令將程序暫停,然后使用“bg”命令將程序轉為后臺運行。這個命令可以接收一個PID參數(shù),以指示要轉入后臺的進程。
使用bg命令將程序轉為后臺運行后,可以使用“jobs”命令來查看當前正在運行的后臺程序。
五、
在Linux系統(tǒng)中,我們可以使用“ps”命令查看正在運行的進程,通過“fg”命令將后臺程序調回前臺,使用“bg”命令將前臺程序轉為后臺運行。這些命令可以幫助我們有效地管理正在運行的程序,提高工作效率。
相關問題拓展閱讀:
- linux系統(tǒng)下如何從后臺啟動進程?
linux系統(tǒng)下如何從后臺啟動進程?
你得查看后臺存在的進程 #jobs
#fg
#bg
兩個命令是調入前臺和后臺的命令
在命令后面加上一個 &
比如:
rm -rf /tmp/ &
Linux 技巧:讓進程在后臺可靠運行的幾種方法
WeiboGoogle+用電子郵件發(fā)送本頁面
我們經(jīng)常會碰到這樣的問題,用 telnet/ssh 登錄了遠程的 Linux 服務器,運行了一些耗時較長的任務, 結果卻由于網(wǎng)絡的不穩(wěn)定導致任務中途失敗。如何讓命令提交后不受本地關閉終端窗口/網(wǎng)絡斷開連接的干擾呢?下面舉了一些例子, 您可以針對不同的迅備場景選擇不同的方式來處理這個問題。
nohup/setsid/&
場景:
如果只是臨時有一個命令需要長時間運行,什么方法能最簡便的保證它在后臺穩(wěn)定運行呢?
hangup 名稱的來由
在 Unix 的早期版本中,每個終端都會通過 modem 和系統(tǒng)通訊。當用戶 logout 時,modem 就會掛斷(hang up)。 同理,當 modem 斷開連接時,就會給終端發(fā)送 hangup 信號來通知其關閉所有子進程。
解決方法:
我們知道,當用戶注銷(logout)或者網(wǎng)絡斷開時,終端會收到 HUP(hangup)信號從而關閉其所有子進程。因此,我們罩喊的解決辦法就有兩種途徑:要么讓進程忽略 HUP 信號,要么讓進程運行在新的會話里從而成為不屬于此終端的子進程。
1. nohup
nohup 無疑是我們首先想到的辦法。顧名思義,nohup 的用途就是讓提交的命令忽略 hangup 信號。讓我們先來看一下 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
可見,nohup 的使用是十分方便的,只需在要處理的命令前加上 nohup 即可,標準輸出和標準錯誤缺省會被重定向到 nohup.out 文件中。一般我們可在結尾加上”&”來將命令同時放入后臺運行,也可用”>filename 2>&1″來更改缺省的重定向文件名。
# 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 無疑能通過忽略 HUP 信號來使我們的進程避免中途被中斷,但如果我們換個角度思考,如果我們的進程不屬于接受 HUP 信號的終端的子進畝悶毀程,那么自然也就不會受到 HUP 信號的影響了。setsid 就能幫助我們做到這一點。讓我們先來看一下 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.
可見 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#
值得注意的是,上例中我們的進程 ID(PID)為31094,而它的父 ID(PPID)為1(即為 init 進程 ID),并不是當前終端的進程 ID。請將此例與nohup 例中的父 ID 做比較。
3。&
這里還有一個關于 subshell 的小技巧。我們知道,將一個或多個命名包含在“()”中就能讓這些命令在子 shell 中運行中,從而擴展出很多有趣的功能,我們現(xiàn)在要討論的就是其中之一。
當我們將”&”也放入“()”內之后,我們就會發(fā)現(xiàn)所提交的作業(yè)并不在作業(yè)列表中,也就是說,是無法通過jobs來查看的。讓我們來看看為什么這樣就能躲過 HUP 信號的影響吧。
# (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#
關于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后臺調到前臺)
文章URL:http://fisionsoft.com.cn/article/dhjghgp.html


咨詢
建站咨詢
