Linux前后台進程切換


(1).Linux前台進程與后台進程的區別

  前台進程:是在終端中運行的命令,那么該終端就為進程的控制終端,一旦這個終端關閉,這個進程也隨之消失。

  后台進程:也叫守護進程(Daemon),是運行在后台的一種特殊進程,不受終端控制,它不需要終端的交互;Linux的大多數服務器就是使用守護進程實現的。比如Web服務器的httpd等。

(2).進程的前台與后台運行

  與系統任務相關的幾個命令(了解):

& 用在一個命令的最后,可以把這個命令放到后台執行
<Ctrl>+z 將一個正在前台執行的命令放到后台,並暫停
jobs 查看當前有多少在后台運行的進程。這是一個作業控制命令
fg(foregroud  process) 將后台中的命令調至前台繼續運行。如果后台中有多個命令,可以用fg [jobnumber]將選中的命令調出,jobnumber是通過jobs命令查到的后台正在執行的命令的序號(不是pid)
bg(backgroud  process) 將一個在后台暫停的命令,變成繼續執行。如果后台中有多個命令,可以用bg %jobnumber將選中的命令調出,%jobnumber是通過jobs命令查到的后台正在執行的命令的序號(不是pid)

(3).&的使用

  如果直接使用&,部分命令仍然在前台顯示,例如"ping 127.0.0.1 &"。此時我們可以使用nohup命令幫助,"nohup ping 127.0.0.1 &",在執行時會創建一個nohup.out的文件。

(4).恢復被掛起的進程

  首先准備一個實驗環境,創建三個被掛起的進程

[xf@xuexi ~]$ vim 1.txt

[1]+  已停止               vim 1.txt
[xf@xuexi ~]$ vim 3.txt

[2]+  已停止               vim 3.txt
[xf@xuexi ~]$ vim 2.txt

[3]+  已停止               vim 2.txt
[xf@xuexi ~]$ ps -aux | grep vim
xf        10277  0.2  0.2 151796  5372 pts/0    T    14:02   0:00 vim 1.txt
xf        10284  0.4  0.2 151796  5352 pts/0    T    14:02   0:00 vim 3.txt
xf        10291  1.5  0.2 151796  5376 pts/0    T    14:02   0:00 vim 2.txt
xf        10299  0.0  0.0 112724   988 pts/0    S+   14:02   0:00 grep --color=auto vim

  接着查看后台進程

[xf@xuexi ~]$ jobs
[1]   已停止               vim 1.txt
[2]-  已停止               vim 3.txt
[3]+  已停止               vim 2.txt

  恢復vim 3.txt的進程

[xf@xuexi ~]$ fg 2
vim 3.txt

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM