Linux程序與作業的區別及相關命令

2021-09-30 16:13:31 字數 1711 閱讀 8749

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 尚未啟...