有兩個命令可以來查看,ps 和 jobs。區別在于 jobs 只能查看當前終端后臺執行的任務,換了終端就看不見了。而ps命令適用于查看瞬時進程的動態,可以看到別的終端的任務。
先后起了兩個后臺運行的進程,使用jobs后都顯示出來了。 “+”代表最近的一個任務(當前任務),“-”代表之前的任務。
只有在當前終端命令行中敲下 nohup和& 時,jobs命令才能將它顯示出來。如果將他們寫到 .sh 腳本中,然后執行腳本,是顯示不出來的
比如執行下面這個腳本后,jobs顯示不出來:
這個是查看進程常用的命令,不多說了。 a: 顯示所有程序 u: 以用戶為主的格式來顯示 x: 顯示所有程序,不以終端機來區分
在Linux系統中,ps(Process Status的縮寫)命令常常用來用來列出系統中當前運行的進程。ps命令列出的是當前那些進程的快照,就是執行ps命令的那個時刻的那些進程, 如果想要動態的顯示進程信息,就可以使用top命令。 要對進程進行監測和控制,首先必須要了解當前進程的情況,也就是需要查看當前進程,而 ps 命令就是最基本同時也是非常強大的進程查看命令。使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程占用了過多的資源等等。總之大部分信息都是可以通過執行該命令得到的。 Linux上進程有5種狀態:
ps命令有很多參數,具體如下:
ps -ef 與 ps aux Linux下顯示系統進程的命令ps,最常用的有ps -ef 和ps aux。這兩個到底有什么區別呢?兩者沒太大差別,討論這個問題,要追溯到Unix系統中的兩種風格,System V風格和BSD 風格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,兩者輸出略有不同。現在的大部分Linux系統都是可以同時使用這兩種方式的。
ps -ef 是用標準的格式顯示進程的、其格式如下:
ps aux 是用BSD的格式來顯示、其格式如下:
其中STAT狀態位常見的狀態字符有 D 無法中斷的休眠狀態(通常 IO 的進程); R 正在運行可中在隊列中可過行的; S 處于休眠狀態; [ 注意:在前臺的進程狀態為s+,而在后臺的sleep進程狀態都是s ] T 停止或被追蹤; W 進入內存交換 (從內核2.6開始無效); X 死掉的進程 (基本很少見); Z 僵尸進程; < 優先級高的進程 N 優先級較低的進程 L 有些頁被鎖進內存; s 進程的領導者(在它之下有子進程); l 多線程,克隆線程(使用 CLONE_THREAD, 類似 NPTL pthreads); + 后面有加號說明進程是“位于在 前臺 進程組”。也就是進程可以使用鍵盤輸出;
(1)通過jobs命令查看jobnum,然后執行 kill %jobnum
(2)通過ps命令查看進程號PID,然后執行 kill %PID
如果是前臺進程的話,直接執行 Ctrl+c 就可以終止了
將后臺中的命令調至前臺繼續運行
如果后臺中有多個命令,可以先用jobs查看jobnun,然后用 fg %jobnum 將選中的命令調出。
(2)Ctrl + z 命令
將一個正在前臺執行的命令放到后臺,并且處于暫停狀態
(3)bg命令
將一個在后臺暫停的命令,變成在后臺繼續執行
如果后臺中有多個命令,可以先用jobs查看jobnum,然后用 bg %jobnum 將選中的命令調出繼續執行。