如何將已經運行的進程放到後臺執行

進程前臺與後臺轉換須要用到如下幾個命令: 進程

1. & 
咱們最經常使用到的就是這個命令了. 用法就是放在一個命令的最後, 能夠把這個命令放到後臺去執行. 大概用法以下: table

1 $ tail -f log/* &
2 [1] 21867
3 # 這裏 [1] 表明它是後臺運行的一個 job 編號爲 1
4 # 這裏 21867 是它的進程號

2. ctrl + z 
這也是經常使用到的快捷鍵. 用於將當前正在執行的前臺進程放到後臺, 而且暫停. 用法大體以下: 後臺

1 $ vi
2 # 按下 ctrl + z
3 [2]+  Stopped                 vi
4 # 這裏 [2] 表明它是後臺運行的一個 job 編號爲 2
5 # 這裏 + 表明他是最近一個被放到後臺的進程, 若是直接輸入 fg 就是恢復這個進程.
6 # 這裏 Stopped 說明它被中止了也就是 ctrl + z 的第二個做用 --  暫停
7 # 這裏 vi 就是進程名

3. jobs 
查看當先後臺運行的進程, 以 "[做業號][-/+] 運行狀態 做業名稱" 輸出結果相似: top

1 $ jobs
2 [1]-  Running                 tail -f log/* &
3 [2]+  Stopped                 vi

2. fg 
用於恢復後臺進程到前臺. 具體用法以下: tab

01 $ fg
02 # 將恢復 vi (還記得麼 vi job 有一個加號, 它表明它是最近一次被放到後臺的進程)
03 # 說明跟參數直接輸入 fg 是恢復最近一次放入後臺的進程到前臺
04 # ctrl + z
05 [2]+  Stopped                 vi
06 $ fg 1
07 # 將恢復 tail
08 # ctrl + z
09 [1]+  Stopped                 tail -f log/*
10 $ jobs
11 [1]-  Stopped                 tail -f log/*
12 [2]+  Stopped                 vi
13 # 再次注意 tail 變成了 Stopped, 而且沒有 & 在句尾了

3. bg 
用戶把後臺 stopped 的進程喚醒, 而且繼續在後臺運行. 具體用法以下: di

1 $ bg 1
2 [1]+ tail -f log/* &
3 $ jobs
4 [1]-  Running                 tail -f log/* &
5 [2]+  Stopped                 vi
6 # 固然 bg 也能夠不跟參數就是喚醒最近放入後臺的那個 stopped 進程(就是有 + 的那個)
相關文章
相關標籤/搜索