linux程序與作業的區別及相關命令
在linux系統上執行的所有東西都可以稱之為乙個程序。例如,乙個簡單的 helloworld程式,在終端上輸入ls命令等等。
乙個正常執行的程序稱之為作業,乙個作業可以啟動多個程序,例如作業ls -lrt | grep *.txt就啟動了兩個程序。
fg、bg、jobs只接受作業號為引數。
kill、disown、wait即可接受作業號為引數,又可接受程序號為引數。
jobs 命令顯示了當前 shell 環境中已啟動的作業狀態。
kill命令可以用來終止乙個程序
[alex@cgdp alex]$ sleep 100&
[1] 6273
[alex@cgdp alex]$ ps
pid tty time cmd
6230 pts/0 00:00:00 bash
6273 pts/0 00:00:00 sleep (待刪除的程序)
6274 pts/0 00:00:00 ps
[alex@cgdp alex]$ kill -9 6273
[alex@cgdp alex]$ ps
pid tty time cmd
6230 pts/0 00:00:00 bash
6275 pts/0 00:00:00 ps
[1]+ killed sleep 100 (程序已被刪除)
disown命令可以用來刪除作業
[alex@cgdp alex]$ ls -l | sleep 200&
[1] 6326
[alex@cgdp alex]$ jobs
[1]+ running ls --color=tty -l | sleep 200 &
[alex@cgdp alex]$ disown %1
[alex@cgdp alex]$ jobs
[alex@cgdp alex]$
fg命令把後台執行的作業放到前台執行,bg重啟乙個掛起的作業。
可以用 ctrl+z 將當前程序掛起到後台暫停執行,執行一些別的操作,然後再用 fg 來將掛起的程序重新放回前台(也
可用 bg 來將掛起的程序放在後台)繼續執行。
wait命令停止指令碼的執行,直到後台執行的所有作業都結束為止,或者直到指定作業號或程序號為選項的作業結束為止.可
以使用wait 命令來防止在後台作業沒完成(這會產生乙個孤兒程序)之前退出指令碼.
例如:寫乙個簡單的指令碼test
#!/bin/sh
ls -l&
echo "done"
執行:[alex@cgdp shell]$ ./test
done
[alex@cgdp shell]$ total 4
-rwxrwxr-x 1 alex alex 30 may 5 21:15 test
使用wait命令重寫指令碼test
#!/bin/sh
ls -l&
wait
echo "done"
執行:[alex@cgdp shell]$ ./test
total 4
-rwxrwxr-x 1 alex alex 35 may 5 21:19 test
done
Linux程序及作業管理
核心的作用 程序管理 檔案系統 網路功能 記憶體管理 驅動程式 安全功能 process 執行中的程式的乙個副本,存在生命週期 linux核心儲存程序資訊的固定格式 task struck,多個任務的task struck元件鍊錶 task list 程序建立 init 父子關係 程序 都有其父程序...
作業和程序的區別與聯絡
在這裡,對作業和程序的概念就不多說了,我直接說他們的聯絡和區別。一 聯絡。二 區別。程序是乙個程式在乙個資料集上的一次執行,而作業是使用者提交給系統的乙個任務。中的數字是作業號,在用kill殺死作業的時候用kill num pid 是程序號,在用kill殺死程序的時候可以直接用kill pid。三 ...
linux程序及作業管理(三) 作業管理
linux系統作業控制 job 前台作業 foregroud 通過終端啟動,且啟動後會一直佔據終端 後台作業 backgroud 可以通過終端啟動,但啟動後即轉入後台執行 釋放終端 如何讓作業執行於後台?1 執行中的作業 ctrl z 相當於19號訊號 注意 送往後台後,作業會轉為停止態 2 尚未啟...