前台:可以控制與執行命令的這個環境稱為前台的任務;
後台:可以自動執行的任務,無法用ctrl+c
終止,可使用bg
,fg
呼叫該任務;
這個符號可以直接將任務丟到後台執行;
int
main()
return0;
}
乙個簡單的while
迴圈我們嘗試將他丟入後台;
會出現[1] 13150
這串數字是什麼意思呢?
這裡的[1]
是乙個任務號碼,下乙個放入後台的就會是[2]
以此類推;
當你重新開啟乙個終端時,在將乙個任務放入後台就會從[1]
開始;
我們可以從pstree
中看出一些原因:
我們可以看到執行在不同terminal
下的程序是有著不同的父程序的;
13150
就是這個程序的pid
程序號;
#include
intmain()
我們來測試一下被放入後台的程式還能不能向螢幕輸出;
我們這裡會發現是可以的,但是有點奇怪;
隨意我們在這種帶有輸出的命令,程式在丟入後台執行時,可以加上重定向,將內容輸出到,別的檔案中;
./a.out > 1.txt &
執行上述命令後,他就不會顯示在螢幕上了,就會顯示在檔案中了;
對於在後台中執行完的任務,在執行完以後會告訴執行者,我執行完了,但是是在,執行下乙個命令時;
這裡我們可以看到,在我們執行完了cat
命令以後會告訴我們剛剛丟入後台的程式已經執行完了;
後台可以執行scanf
或者別的輸入嗎?
其實顯然是不能的…
這裡我們用事實說話
我們發現是不可以輸入的,而且在遇到輸入時,程序會變成停止狀態;
我們可以看到a.out
這個程序狀態已經變成了t
;
jobs
命令是用來檢視目前的後台任務狀態的;
我們以下都用下面這個程式來作為示例:
我們開三個程序,第三個用ctrl+z
停止;然後我們來看jobs
命令
相比jobs
多了程序號;
-r
只顯示正在執行的程序;
jobs -s
-s
只顯示停止的程序;
在後台執行或者停止的程序可以通過fg
命令拿到前台執行,後台正在停止的程序,拿到前台後就變成了正在執行狀態;
我們還是要看這個圖,在第二列有乙個程序前面有個+
,有乙個程序有個-
;
這個加號和減號代表什麼意思呢?
這個其實在fg
這裡有用途,fg
拿出來的就是這個帶加號的程序;因為這裡都是a.out
不太好辨認,所以我們編譯成1,2,3
;
其實這裡我們可以看出來,帶加號的程序是最近乙個放入後台的程序;
我們看到這裡把任務編號為[3]
的程序結束以後,[2]
變成了加號;
fg 數字
就能把後台編號為該數字的程序拿到前台來;
bg
命令是可以把後台停止的任務變成在後台執行;和fg
一樣,拿出帶加號的程序
Linux的程序和任務管理命令
linux的程序 1.檢視程序 ps命令 檢視靜態的程序統計資訊 processes statistic 語法 ps 選項 a 顯示當前終端下的所有程序資訊 u 使用以使用者為主的格式輸出程序資訊 x 顯示當前使用者為主的格式輸出程序資訊 e 顯示系統內的所有程序資訊 l 使用長格式顯示程序資訊 f...
Linux任務排程命令(輕鬆管理Linux)
linux任務排程其實就是讓系統在某個時間執行某些命令或者程式,這樣可以讓管理員更加輕鬆地管理自己的linux,當我剛了解到這個方法時,我的內心充滿了無盡的欣喜,感覺linux實在是太強大了。下面我就來具體的講講這個命令 一 任務排程分類 1.系統工作,有些重要的工作必須周而復始的執行,比如病毒掃瞄...
linux 任務管理
windows系統下,我們可以執行多個任務,但是在linux系統下,操作都是用命令列來執行,所以為了乙個終端能執行多個任務,就需要在單一終端下同時執行多個任務的操作管理.cp file1 file2 最簡單的就是用 在命令後面加上 可以把操作放到後台執行.如果出現 則代表任務已經執行完成 假如我們執...