青蛙學Linux 程序管理

2022-08-31 20:45:10 字數 1887 閱讀 2806

程序,process,是乙個具有一定獨立功能的程式關於某個資料集合的一次執行活動。它是作業系統動態執行的基本單元,在傳統的作業系統中,程序既是基本的分配單元,也是基本的執行單元。

程序的概念主要有兩點:第一,程序是乙個實體。每乙個程序都有它自己的位址空間,一般情況下,包括文字區域(text region)、資料區域(data region)和堆疊(stack region)。文字區域儲存處理器執行的**;資料區域儲存變數和程序執行期間使用的動態分配的記憶體;堆疊區域儲存著活動過程呼叫的指令和本地變數。第二,程序是乙個「執行中的程式」。程式是乙個沒有生命的實體,只有處理器賦予程式生命時(作業系統執行之),它才能成為乙個活動的實體,我們稱其為程序。

程序是執行緒的容器,程序中包含一組執行緒,執行緒執行在程序中。

1.系統程序:可以執行記憶體資源分配和程序切換等管理工作的程序,由作業系統啟動並管理,這類程序的執行不受使用者的干預,即使是root使用者也無法干預系統程序的執行。

2.使用者程序:通過執行使用者程式、應用程式或核心之外的系統程式而產生的程序,這類程序可以在使用者的控制下執行或關閉,使用者程序可分為以下三種

在linux中,程序id(pid)是區分不同程序的唯一標識,它的大小是有限制的,最大id為32768。用uid和gid分別表示啟動這個程序的使用者和使用者組;ppid表示程序的父程序。

顯示程序在瞬間的執行狀態。命令語法如下:

ps [選項]
常用選項:

常用命令組合有ps -ef和ps -aux,這裡來看下兩個組合的詳解:

各列詳解:

各列詳解:

額外的:顯示中使用括起來的程序為系統程序。

用於實時檢視程序的系統占用狀態,同時可以顯示當前系統負載和cpu記憶體等狀況。命令語法如下:

top
top命令的回顯可以分為以下兩部分:

第一部分主要是系統當前的負載、各種狀態的程序數量、cpu和記憶體負載,每行具體內容如下:

第二部分顯示的是系統中程序的實時資訊,各列含義如下:

額外的:在top介面下按f鍵可以修改顯示的列。

用於列出程序開啟的檔案。若系統中沒有安裝,使用yum install lsof安裝即可。命令語法如下:

lsof [選項] [引數]
常用選項:

lsof -c顯示詳解:

列詳解通過程式名查詢pid。命令語法如下:

pgrep [選項] 程式名
常用選項:

根據指定的pid殺死程序。命令語法如下:

kill [訊號型別] pid
訊號型別決定了kill如何結束乙個程序,通過kill –l可以檢視所有的訊號型別。常用的訊號型別有:

額外的:我們通常使用以下的kill選項來檢測乙個程序是否存在

kill -0 pid

# 當程序存在時,命令正常執行,返回值為0;程序不存在時,命令執行失敗,返回值非0

根據指定的程序名殺死乙個或一組程序。命令語法如下:

killall [訊號型別] 程序名

青蛙學Linux Apache基礎

apache通常指apache http server,它是世界上使用量排名第一的web伺服器軟體,是最流行的web伺服器之一。apache http server的官網為 1.1 安裝apr 安裝apr root localhost apr 1.6.5 configure prefix usr l...

青蛙學Linux Nginx基礎

nginx是一款輕量級的高效能http和反向 伺服器以及imap pop3郵件 伺服器,由俄羅斯人伊戈爾 賽索耶夫為俄羅斯訪問量第二的站點rambler.ru開發的。nginx為開源軟體,因其併發能力強 系統資源占用小等優點而受到大家的歡迎。nginx不僅可以做為http和反向 伺服器,也可以做為負...

LINUX程序管理

1.程序是什麼?乙個程序就是出於執行期的程式,包括 可執行程式 段 開啟的檔案,掛起的訊號,核心內部資料,處理器狀態,位址空間,乙個或多個執行執行緒,當然還包括用來存放全域性變數的資料段,等等.2.什麼是執行緒?它和程序的關係是什麼樣的?執行緒在linux中具體是怎麼樣實現的?是在程序中活動的物件,...