(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