溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux管理后臺進程是怎樣的

發(fā)布時間:2021-10-21 17:32:51 來源:億速云 閱讀:116 作者:柒染 欄目:大數(shù)據(jù)

這篇文章將為大家詳細講解有關(guān)Linux管理后臺進程是怎樣的,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

 

前言

你是不是經(jīng)常需要 SSH 或者 telent 遠程登錄到 Linux 服務器?你是不是經(jīng)常為一些長時間運行的任務而頭疼,比如系統(tǒng)備份、ftp 傳輸、還有就是通常服務器編譯等等。通常情況下我們都是為每一個這樣的任務開一個遠程終端窗口,因為他們執(zhí)行的時間太長了。必須等待它執(zhí)行完畢,在此期間可不能關(guān)掉窗口或者斷開連接,否則這個任務就會被殺掉,一切半途而廢了。

那有沒有窗口管理器,它在多個進程(通常是交互式shell)之間復用物理終端,當窗口當前不可見時,甚至當整個屏幕會話從用戶終端離線時,程序繼續(xù)運行,再回來的時候,還在繼續(xù)運行還有歷史等日志?

 

原因

讓我們來看看為什么關(guān)掉窗口/斷開連接會使得正在運行的程序死掉。在Linux/Unix中,有這樣幾個概念:

  • 進程組(process group):一個或多個進程的集合,每一個進程組有唯一一個進程組ID,即進程組長進程的ID。

  • 會話期(session):一個或多個進程組的集合,有唯一一個會話期首進程(session leader)。會話期ID為首進程的ID。

  • 會話期可以有一個單獨的控制終端(controlling terminal)。與控制終端連接的會話期首進程叫做控制進程(controlling process)。當前與終端交互的進程稱為前臺進程組。其余進程組稱為后臺進程組。

根據(jù)POSIX.1定義。掛斷信號(SIGHUP)默認的動作是終止程序。當終端接口檢測到網(wǎng)絡連接斷開,將掛斷信號發(fā)送給控制進程(會話期首進程)。如果會話期首進程終止,則該信號發(fā)送到該會話期前臺進程組。一個進程退出導致一個孤兒進程組中產(chǎn)生時,如果任意一個孤兒進程組進程處于STOP狀態(tài),發(fā)送SIGHUP和SIGCONT信號到該進程組中所有進程。

因此當網(wǎng)絡斷開或終端窗口關(guān)閉后,控制進程收到SIGHUP信號退出,會導致該會話期內(nèi)其他進程退出。

如果我們可以忽略SIGHUP信號,關(guān)掉窗口應該就不會影響程序的運行了。nohup命令可以達到這個目的,如果程序的標準輸出/標準錯誤是終端,nohup默認將其重定向到nohup.out文件。值得注意的是nohup命令只是使得程序忽略SIGHUP信號,還需要使用標記&把它放在后臺運行。

雖然nohup很容易使用,但還是比較“簡陋”的,對于簡單的命令能夠應付過來,對于復雜的需要人機交互的任務就麻煩了。

其實我們可以使用一個更為強大的實用程序screen。流行的Linux發(fā)行版(例如Red Hat Enterprise Linux 4)通常會自帶screen實用程序,如果沒有的話,可以從GNU screen 的官方網(wǎng)站下載。

http://www.gnu.org/software/screen/

 

如何使用

簡單來說,Screen是一個可以在多個進程之間多路復用一個物理終端的窗口管理器。Screen中有會話的概念,用戶可以在一個screen會話中創(chuàng)建多個screen窗口,在每一個screen窗口中就像操作一個真實的telnet/SSH連接窗口那樣。在screen中創(chuàng)建一個新的窗口有這樣2 種方式。

  • 在開始使用之前,您screen需要確保正確選擇了終端類型,就像對任何其他termcap / terminfo程序一樣。然后輸入 screen 即可開一個新的進程。輸入 exit 就是退出這個后臺。

  • 在命令前面加上 screen,也會創(chuàng)建一個單窗口的會話。

還有一些常用命令,查看有哪些后臺進程

screen -ls
 

恢復一個進程 id

screen -r screen_id
   

還有一些高級用法,比如創(chuàng)建一個進程名字、設置標題、還有wipe掉已經(jīng)移除的進程等,Linux 還有類似的命令 tmux,這個用法請自行 Google。用起來吧,一直用一直爽。

關(guān)于Linux管理后臺進程是怎樣的就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI