LINUX系統中程式如何管理控制(一)
上篇文章詳細介紹了 命令程式透過獲取SHELL 環境中的資料(此處的資料通常稱為環境變數)來輸出本機相應的配置資料,從而掌握在LINUX 中SHELL 環境的搭建技巧。那麼,今天,這篇文章主要圍繞linux 系統中的程式展開描述。
程式與程式的區別
程式的概念:作為二進位制檔案,屬於靜態的;
程式的概念:作為程式執行的過程,屬於動態的,具有生命週期及其執行狀態特徵。
說到“程式”,就會聯想到“多工”這個概念。目前幾乎所有的作業系統都支援多工,即作業系統初始化後可支援多工多程式同時執行或無縫切換。Linux 核心是透過使用程式來管理多工。
在linux 系統實際執行當中,伺服器有時會變得呆滯,執行緩慢,或者某個程式停止響應。那麼,在遇到上述情況如何處理或者應對呢?
程式的工作流程(原理)
當linux 系統啟動時,linux 核心先將一些它自己的活動初始化為程式,然後執行init 程式。緊接著,init 程式依次地執行一系列的shell 指令碼(一般位於/etc 目錄路徑),它們可啟動所有的系統服務。當然,許多系統服務將以守護(daemon )程式的形式出現,守護程式僅在後臺執行,即使linux 系統沒有登入,linux 系統也會在後臺執行一些例行事務。
linux 核心維護著所有程式的資訊,以此來保持所有任務井然有序。
程式的檢視--ps 命令(靜態檢視)
ps ,全稱process status 。 先簡單舉個例子來介紹ps 命令:
[root@linuxProbe ~]$ ps
PID TTY TIME CMD
5198 pts/1 00:00:00 bash
10129 pts/1 00:00:00 ps
// 表示有兩個程式,分別為程式5198 和程式10129 ,各自對應的命令是bash 命令和ps 命令。
// TTY 全稱“Teletype”( 直譯電傳打字機) ,程式的控制終端。
// TIME 欄位表示程式所消耗的CPU 的時間數量。
預設情況下,ps 命令不會顯示更多的程式資訊,僅僅是列舉與當前會話相關的程式資訊。那麼為了得到更多關於系統執行狀態的資訊,我們需要將ps 命令加上一些選項引數 :
[root@linuxprobe ~]$ ps x
PID TTY STAT T ME COMMAND
2799 ? Ssl 0:00 /usr/libexec/bonobo-activation-server –ac
2820 ? Sl 0:01 /usr/libexec/evolution-data-server-1.10 –
//ps 命令的常見引數以及作用如下表所示:
引數 |
作用 |
-a |
顯示所有程式(包括其他使用者的程式) |
-u |
使用者以及其他詳細資訊 |
-x |
顯示沒有控制終端的程式 |
//STAT 全稱“state” ,代表了程式當前狀態,如下表所示:
狀態 |
代表含義 |
R (執行) |
程式正在執行或在執行佇列中等待 |
S (中斷) |
程式處於休眠中,當某個條件形成後或者接收到訊號時,則脫離該狀態 |
D (不可中斷) |
程式不響應系統非同步訊號,即便用kill 命令也不能將其中斷 |
Z (僵死) |
一個已經終止的子程式,但是它的父程式還沒有清空它。(父程式沒有把子程式從程式表中刪除) |
T (停止) |
已停止,程式收到停止訊號後停止執行。 |
< |
高優先順序程式。這種狀態下,可能會授予程式更多、重要的資源,更多的CPU 時間數量。具有高優先順序的程式據說是不好的(less nice ),因為它佔用了比較多的CPU 時間,這樣就給其它程式留下很少時間。 |
N |
低優先順序程式。只有當其它高優先順序程式被服務了之後,才會得到處理器時間。 |
除了上面7 種常見的程式狀態,還有被鎖進記憶體(L )、包含子程式(s )以及多執行緒(l )這3 種補充形式,在此不再一一描述了。
ps 命令能夠列舉許多執行狀態的詳細資訊,弊端是它只能提供ps 命令執行時刻的機器狀態快照,也就是相對靜態的,不能實時滾動最新資料。
程式的檢視--top 命令(動態檢視)
linux 中top 命令能夠動態地檢視其系統狀態, 的作者劉遄在其書籍中寫道:完全可以將它看作是Linux 中“ 強化版的Windows 工作管理員” 。不容置疑,top 命令確實一個相當好用的效能分析工具。
top 命令執行結果的前5 行,概況了系統整體的統計資訊,其所代表的含義如下表所示:
行號 |
欄位 |
意義 |
1 |
top |
程式名 |
18:35:07 |
當前時間 | |
up 36 min |
這是正常執行時間。它是計算機從上次啟動到現在所執行的時間。這個例子顯示系統已經執行了36分鐘 | |
1 user |
有1個使用者登入系統 | |
load average |
載入平均值是指,等待執行的程式數目,也就是說,處於可以執行狀態並共享CPU 的程式個數。這裡展示了三個數值,每個數值對應不同的時間段。第一個是最後0.01秒的平均值,下一個是前0.05的平均值,最後一個是前0.03的平均值。各項平均值都低於1.0,則表明執行狀態良好 | |
2 |
Tasks |
列舉了程式總數和這些程式的各種狀態(執行中的程式數、睡眠中的程式數、停止的程式數、僵死的程式數) |
3 |
Cpu(s) |
這一行描述了CPU 正在進行的活動的特性。依次代表的含義是使用者佔用資源百分比、系統核心佔用資源百分比、改變過優先順序的程式資源百分比、空閒的資源百分比等。其中資料均為CPU資料並以百分比格式顯示,例如“99.9 id”意味著有99.9%的CPU處理器資源處於空閒。 |
4 |
Mem |
實體記憶體的使用情況(依次代表實體記憶體總量、記憶體空閒量、記憶體使用量、作為核心快取的記憶體量) |
5 |
Swap |
交換分割槽(虛擬記憶體)的使用情況(依次代表虛擬記憶體總量、虛擬記憶體空閒量、虛擬記憶體使用量、已被提前載入的記憶體量) |
已經到深夜,關於linux 系統中的程式的描述暫時描述到這裡,這篇文章詳細介紹了靜態檢視ps 命令和動態檢視top 命令,關於程式的介紹還有如何控制程式(中斷、停止等),下篇文章再補充吧。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2848978/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- LINUX程式如何管理控制(二)Linux
- 如何弄清 Linux 系統執行何種系統管理程式Linux
- 在 Linux 系統中如何管理 systemd 服務Linux
- 在MacOS系統中如何管理隱私許可權控制?Mac
- Linux系統管理之程式管理Linux
- 在Linux中,如何在Linux中進行系統映象管理?Linux
- Linux 系統管理(中)(轉)Linux
- 在Linux中,如何配置和管理系統服務?Linux
- CPU 電源管理器:Linux 系統中 CPU 主頻的控制和管理Linux
- 如何在 Linux 系統中結束程式或是中止程式Linux
- Linux系統管理-工作管理(後臺程式管理)Linux
- macOS系統中的家長控制管理教程Mac
- Mac系統程式如何有效管理?Mac
- 【Linux】Linux作業系統 程式管理Linux作業系統
- 在Linux中,如何進行系統更新和補丁管理?Linux
- Linux系統中管理Swap分割槽Linux
- 簡述linux系統中軟體包管理系統Linux
- Linux系統裡的程式管理(轉)Linux
- Linux系統中grep如何使用?Linux
- linux系統ACL控制Linux
- 【Roger Wo】在.NET程式中控制系統音量
- Linux 系統中殭屍程式Linux
- 如何理解OA系統中的公文管理?
- 在Linux系統中如何刪除一個檔案?Linux
- Linux系統管理-系統概述Linux
- linux程式管理子系統簡要分析Linux
- 【原創】Linux中斷子系統(一)-中斷控制器及驅動分析Linux
- linux系統管理Linux
- Linux系統程式設計(8)—— 程式之程式控制函式forkLinux程式設計函式
- 如何在linux中搭建JEECMS系統Linux
- 在Linux中,如何理解系統管理工具,如Webmin和Ajenti。LinuxWeb
- 在Linux中,如何配置和管理系統備份和恢復策略?Linux
- Linux系統程式設計(27)——執行緒控制Linux程式設計執行緒
- 『學了就忘』Linux系統管理 — 84、Linux中程式的管理Linux
- 一對一直播系統原始碼,後臺管理系統許可權控制方案原始碼
- 在 Linux 上如何清理垃圾系統管理員Linux
- 【作業系統】 第二章 程式管理 程式的描述與控制作業系統
- LINUX(十一)Linux程式管理及作業控制Linux