新聞中心
在Linux系統(tǒng)中,進(jìn)程是操作系統(tǒng)中最重要的概念之一,它是系統(tǒng)資源分配和管理的基本單位。在Linux中,進(jìn)程是在內(nèi)核態(tài)下運(yùn)行的一個(gè)程序,它包含了程序的執(zhí)行代碼、數(shù)據(jù)、堆棧等信息。在操作系統(tǒng)中,進(jìn)程可看作是一個(gè)具有獨(dú)立功能的單位,它有自己獨(dú)立的運(yùn)行狀態(tài)和資源分配。為了更好地管理和優(yōu)化進(jìn)程,Linux提供了一系列的進(jìn)程調(diào)用函數(shù),可以幫助我們查看進(jìn)程相關(guān)信息。

成都創(chuàng)新互聯(lián)是一家專業(yè)提供當(dāng)涂企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、H5建站、小程序制作等業(yè)務(wù)。10年已為當(dāng)涂眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
一、查看當(dāng)前進(jìn)程信息
1. getpid 函數(shù)
getpid 函數(shù)可以用來(lái)獲取當(dāng)前進(jìn)程的 ID 號(hào)。
函數(shù)原型:pid_t getpid(void);
返回值:返回當(dāng)前進(jìn)程 ID 號(hào)
示例代碼:
#include
#include
int mn()
{
pid_t pid = getpid();
printf(“當(dāng)前進(jìn)程ID號(hào):%d\n”, pid);
return 0;
}
輸出結(jié)果:
當(dāng)前進(jìn)程ID號(hào):1234
2. getppid 函數(shù)
getppid 函數(shù)可以用來(lái)獲取當(dāng)前進(jìn)程的父進(jìn)程的 ID 號(hào)。
函數(shù)原型:pid_t getppid(void);
返回值:返回當(dāng)前進(jìn)程父進(jìn)程 ID 號(hào)
示例代碼:
#include
#include
int mn()
{
pid_t ppid = getppid();
printf(“當(dāng)前進(jìn)程父進(jìn)程ID號(hào):%d\n”, ppid);
return 0;
}
輸出結(jié)果:
當(dāng)前進(jìn)程父進(jìn)程ID號(hào):5678
3. getuid 函數(shù)
getuid 函數(shù)可以用來(lái)獲取當(dāng)前進(jìn)程的用戶 ID。
函數(shù)原型:uid_t getuid(void);
返回值:返回當(dāng)前進(jìn)程用戶 ID 號(hào)
示例代碼:
#include
#include
int mn()
{
uid_t uid = getuid();
printf(“當(dāng)前進(jìn)程用戶ID號(hào):%d\n”, uid);
return 0;
}
輸出結(jié)果:
當(dāng)前進(jìn)程用戶ID號(hào):1000
4. getgid 函數(shù)
getgid 函數(shù)可以用來(lái)獲取當(dāng)前進(jìn)程的用戶組 ID。
函數(shù)原型:gid_t getgid(void);
返回值:返回當(dāng)前進(jìn)程用戶組 ID 號(hào)
示例代碼:
#include
#include
int mn()
{
gid_t gid = getgid();
printf(“當(dāng)前進(jìn)程用戶組ID號(hào):%d\n”, gid);
return 0;
}
輸出結(jié)果:
當(dāng)前進(jìn)程用戶組ID號(hào):1000
二、查看其他進(jìn)程信息
1. getpgid 函數(shù)
getpgid 函數(shù)可以用來(lái)獲取指定進(jìn)程的進(jìn)程組 ID。
函數(shù)原型:pid_t getpgid(pid_t pid);
參數(shù) pid:進(jìn)程 ID 號(hào),用于獲取指定進(jìn)程的進(jìn)程組 ID
返回值:返回進(jìn)程組 ID 號(hào)
示例代碼:
#include
#include
int mn()
{
pid_t pid = 1234; // 指定進(jìn)程 ID 號(hào)
pid_t pgid = getpgid(pid);
printf(“進(jìn)程組ID號(hào):%d\n”, pgid);
return 0;
}
輸出結(jié)果:
進(jìn)程組ID號(hào):4321
2. getpriority 函數(shù)
getpriority 函數(shù)可以用來(lái)獲取指定進(jìn)程的進(jìn)程優(yōu)先級(jí)。
函數(shù)原型:int getpriority(int which, int who);
參數(shù) which:進(jìn)程優(yōu)先級(jí)類型,取值范圍為常數(shù) PRIO_PROCESS、PRIO_PGRP 和 PRIO_USER。
參數(shù) who:進(jìn)程、進(jìn)程組或用戶 ID 號(hào)。
返回值:返回指定進(jìn)程優(yōu)先級(jí),失敗返回 -1。
示例代碼:
#include
#include
#include
int mn()
{
int which = PRIO_PROCESS;
pid_t pid = getpid(); // 獲取當(dāng)前進(jìn)程 ID 號(hào)
int priority = getpriority(which, pid);
printf(“進(jìn)程優(yōu)先級(jí):%d\n”, priority);
return 0;
}
輸出結(jié)果:
進(jìn)程優(yōu)先級(jí):0
3. getrlimit 函數(shù)
getrlimit 函數(shù)可以用來(lái)獲取指定進(jìn)程的資源限制。
函數(shù)原型:int getrlimit(int resource, struct rlimit *rlim);
參數(shù) resource:需要獲取限制信息的資源類型,如 RLIMIT_CORE 表示核心轉(zhuǎn)儲(chǔ)限制,RLIMIT_STACK 表示堆棧大小限制等。
參數(shù) rlim:指向 rlimit 結(jié)構(gòu)體的指針,用來(lái)存儲(chǔ)獲取到的資源限制值。
返回值:成功返回0,失敗返回-1。
示例代碼:
#include
#include
#include
int mn()
{
struct rlimit rlim;
int resource = RLIMIT_STACK; // 獲取堆棧大小限制信息
if (getrlimit(resource, &rlim)
printf(“getrlimit error\n”);
return -1;
}
printf(“當(dāng)前資源限制:%ld – %ld\n”, rlim.rlim_cur, rlim.rlim_max);
return 0;
}
輸出結(jié)果:
當(dāng)前資源限制:8388608 – 67108864
相關(guān)問(wèn)題拓展閱讀:
- linux下使用pmap和ldd查看進(jìn)程調(diào)用了什么lib
- 如何查看Linux服務(wù)器的進(jìn)程
linux下使用pmap和ldd查看進(jìn)程調(diào)用了什么lib
pmap PID #查看靜態(tài)內(nèi)存使用情況
top #按shift+m 按照內(nèi)存使用情況進(jìn)行排序
ps -ef | grep nginx #查看PID 比1234
cat /proc/1234/status #查看詳細(xì)信息
RSS列 表示 程序占用少物理內(nèi)存 虛擬內(nèi)存用考慮并占用實(shí)際物理內(nèi)存 (2). top 命令 其VIRT(或VSS)列 表示程序占用少虛擬內(nèi)存 同 ps aux VSZ列 RES列 表示 程序占用少物理內(nèi)存同 ps aux RSS列 2.linux 查看前系統(tǒng)占用少內(nèi)存 般命令 free其 free系統(tǒng)少內(nèi)存使用由于 linux 系統(tǒng)內(nèi)存使用原則 內(nèi)存滑鍵寶貴 能使用少使用少 所 linux已經(jīng)調(diào)用包緩存起放內(nèi)存實(shí)際使用內(nèi)存理解 free+buffers+cached3.解完些命令 再使用ps aux 命令查看候 發(fā)現(xiàn)奇怪現(xiàn)象 所 RSS 列數(shù)據(jù)加起 比物理內(nèi)存數(shù)要 比 物理內(nèi)存2G RSS列數(shù)據(jù)加起能5G 事 RSS列值騙我 linux內(nèi)存機(jī)制: 運(yùn)行程序 linux調(diào)用該程序依賴鏈接庫(kù) lib.xx.so 首先看該鏈接庫(kù)否映射進(jìn)內(nèi)存沒(méi)映射則代碼段與數(shù)據(jù)段映射內(nèi)存否則其加入進(jìn)程址空間 N程序依賴lib.xx.so候 實(shí)際內(nèi)存lib.xx.so N RSS顯示程序占用實(shí)際物理內(nèi)存 lib.xx.so算進(jìn) 比 X程序 本身占用內(nèi)存5M lib.xx.so 占用內(nèi)存2Mlib.xx.soN程序共享依賴 則RSS顯示X程序運(yùn)行占用內(nèi)存7M 實(shí)際 X程序占用5M空間 余2m討入RSS 用ps aux顯示內(nèi)存占用情況 N共享依賴lib.xx.soN程序都2m空間算自RSS RSSsum值比實(shí)際物理內(nèi)存 linux內(nèi)存使用機(jī)制復(fù)雜 句兩句能說(shuō)清楚簡(jiǎn)單說(shuō)明 ps auxRSS值 并能真實(shí)反映物理內(nèi)存使用情況 4. 查看更詳細(xì)內(nèi)存使用情況 用幾種 或者幾種結(jié)合使用:幾種都需要root賬戶權(quán)限(1). pmap -d $pid $pid 運(yùn)行程序pid(2). cat /proc/$pid/aps aps數(shù)據(jù)比較詳細(xì)簡(jiǎn)單歸納歸納命令: cat /proc/$pid/aps | awk ‘/Size|Rss|Pss|Shared|Private|Referenced|Swap/{val_name=gensub(/(*).*/,”\\伍讓鄭1″,1,$1); list+=$2; }END{for(val in list)print val,list;}’腔頌 (3). cat /proc/$pid/maps(4). cat /proc/$pid/statm輸解釋第列 size:任務(wù)虛擬址空間 第二列 Resident:使用物理內(nèi)存 第三列 Shared:共享頁(yè)數(shù)第四列 Trs:程序所擁執(zhí)行虛擬內(nèi)存 第五列 Lrs:映像倒任務(wù)虛擬內(nèi)存空間庫(kù) 第六列 Drs:程序數(shù)據(jù)段用戶態(tài)棧 第七列 dt:臟頁(yè)數(shù)量(5). vmstat命令據(jù)說(shuō)提供些參考信息具體未研究 5.作phper嘗試使用php函數(shù)memory_get_usage() 該函數(shù)能php前運(yùn)行程序?qū)嶋H真占用內(nèi)存數(shù)量 真想php真占用內(nèi)存 概能, 程序運(yùn)行始執(zhí)行memory_get_usage(). 程序運(yùn)行結(jié)束執(zhí)行memory_get_usage() 兩者值相減值 應(yīng)該相比較準(zhǔn)確內(nèi)存占用數(shù)量 沒(méi)測(cè)試 考慮 數(shù)量沒(méi)實(shí)際意義 加平比較忙懶試
如何查看Linux服務(wù)器的進(jìn)程
1.ps
ps命令是最基本同時(shí)也是非常強(qiáng)大的進(jìn)程查看命令。使用該命令可以確定有哪些進(jìn)燃弊程正在運(yùn)行和它所運(yùn)行的狀態(tài)、進(jìn)程是否結(jié)束、進(jìn)程有沒(méi)有僵死、哪些進(jìn)程占用了過(guò)多的資源等??傊蟛糠中畔⒍际强梢酝ㄟ^(guò)執(zhí)行該命令得到的。ps命令最常用來(lái)監(jiān)控后臺(tái)進(jìn)程的工作情況,因?yàn)楹笈_(tái)進(jìn)啟梁程是不和屏幕、鍵盤(pán)這些標(biāo)準(zhǔn)輸入/輸出設(shè)備進(jìn)行通信的,所以如果需要檢測(cè)后臺(tái)情況,就需要使用ps命令了。它的格式如下所示:
格式:ps
其主要選項(xiàng)如下。
-a:顯示系統(tǒng)中所有進(jìn)程的信息。
-e:顯示所有進(jìn)程的信息。
-f:顯示進(jìn)程的所有信息。
-l:以長(zhǎng)格式顯示進(jìn)程信息。皮旁族
-r:只顯示正在運(yùn)行的進(jìn)程。
-u:顯示面向用戶的格式(包括用戶名、CPU及內(nèi)存的使用情況等信息)。
-x:顯示所有非控制終端上的進(jìn)程信息。
-p:顯示由進(jìn)程ID指定的進(jìn)程信息。
關(guān)于linux查看進(jìn)程調(diào)用的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
網(wǎng)頁(yè)題目:Linux進(jìn)程調(diào)用詳解:查看進(jìn)程相關(guān)信息(linux查看進(jìn)程調(diào)用)
本文URL:http://m.fisionsoft.com.cn/article/dhcchoc.html


咨詢
建站咨詢
