Linux进程pid怎么看(linux进程pid)
linux waitpid函數(shù)?
waitpid函數(shù)
作用同wait,但可指定pid進(jìn)程清理,可以不阻塞。
pid_t waitpid(pid_t pid, int *status, in options); 成功:返回清理掉的子進(jìn)程ID;失敗:-1(無子進(jìn)程)
特殊參數(shù)和返回情況:
參數(shù)pid:
> 0 回收指定ID的子進(jìn)程
-1 回收任意子進(jìn)程(相當(dāng)于wait)
0 回收和當(dāng)前調(diào)用waitpid一個組的所有子進(jìn)程
< -1 回收指定進(jìn)程組內(nèi)的任意子進(jìn)程
返回0:參3為WNOHANG,且子進(jìn)程正在運(yùn)行。
注意:一次wait或waitpid調(diào)用只能清理一個子進(jìn)程,清理多個子進(jìn)程應(yīng)使用循環(huán)。
linux下查看進(jìn)程用什么命令?
linux下查看進(jìn)程可以使用的命令:
1、ps命令查找與進(jìn)程相關(guān)的PID號:
2、psa顯示現(xiàn)行終端機(jī)下的所有程序,包括其他用戶的程序。
3、ps-A顯示所有程序。
4、psc列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,參數(shù)或常駐服務(wù)的標(biāo)示。
5、ps-e此參數(shù)的效果和指定"A"參數(shù)相同。
6、pse列出程序時,顯示每個程序所使用的環(huán)境變量。
7、psf用ASCII字符顯示樹狀結(jié)構(gòu),表達(dá)程序間的相互關(guān)系。
8、ps-H顯示樹狀結(jié)構(gòu),表示程序間的相互關(guān)系。
9、ps-N顯示所有的程序,除了執(zhí)行ps指令終端機(jī)下的程序之外。
10、pss采用程序信號的格式顯示程序狀況。
11、psS列出程序時,包括已中斷的子程序資料。
12、ps-t<終端機(jī)編號>指定終端機(jī)編號,并列出屬于該終端機(jī)的程序的狀況。
13、psu以用戶為主的格式來顯示程序狀況。
14、psx顯示所有程序,不以終端機(jī)來區(qū)分。
linux獲取進(jìn)程id函數(shù)?
linux C中,獲取當(dāng)前進(jìn)程id 函數(shù)為getpid() ;
頭文件:#include <unistd.h> 函數(shù)原型:pid_t getpid(void); 函數(shù)說明:getpid ()用來取得目前進(jìn)程的進(jìn)程id,許多程序利用取到的此值來建立臨時文件, 以避免臨時文件相同帶來的問題。 返回值:目前進(jìn)程的進(jìn)程id 范例 #include <stdio.h> #include <unistd.h> main() { printf("pid=%d ", getpid()); } 執(zhí)行: pid=1494 /*每次執(zhí)行結(jié)果都不一定相同 */
linux怎么查看一個進(jìn)程的執(zhí)行狀態(tài)?
1,寫一個服務(wù),用exec或popen執(zhí)行ps的命令行,根據(jù)該進(jìn)程的名字獲取該進(jìn)程的pid。
sprintf(cmd, "ps -ef|grep %s ",name);
pstr=popen(cmd, "r");
然后php定時的請求這個機(jī)器上的進(jìn)程狀態(tài),如果進(jìn)程掛掉了,可以做個預(yù)警。
2,如果想做的更多,監(jiān)視當(dāng)前每個進(jìn)程的資源消耗,比如CPU,內(nèi)存,根據(jù)進(jìn)程的id,可以去拿到/proc/pid/status中的一些數(shù)據(jù),比如:
//獲取進(jìn)程占用內(nèi)存
unsigned int get_proc_mem(unsigned int pid){
char file_name={0};
FILE *fd;
char line_buff={0};
sprintf(file_name,"/proc/%d/status",pid);
fd =fopen(file_name,"r");
if(nullptr == fd){
return 0;
}
char name;
int vmrss;
for (int i=0; i<VMRSS_LINE-1;i++){
fgets(line_buff,sizeof(line_buff),fd);
}
fgets(line_buff,sizeof(line_buff),fd);
sscanf(line_buff,"%s %d",name,&vmrss);
fclose(fd);
return vmrss;
}
然后你就可以通過一些圖形做一些動態(tài)展示了。
linux查看進(jìn)程由哪個進(jìn)程啟動?
1、查看進(jìn)程“打開”的文件(方法1):
1)pidofprograme-name(獲得想了解的進(jìn)程(programe-name)的PID)或ps-aux|grepprograme-name(獲得想了解的進(jìn)程(programe-name)的PID)找出進(jìn)程的PID2)cd/proc/$PID/fd(會看見文件描述符)
3)ls-l得到文件描述符指向的實(shí)際文件,即當(dāng)前進(jìn)程打開的文件2、查看進(jìn)程“打開”的文件(方法2):
1)獲得想了解的進(jìn)程的PID方法同上2)lsof-cprograme-name或lsof-p$PID
總結(jié)
以上是生活随笔為你收集整理的Linux进程pid怎么看(linux进程pid)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汽车外观改装备案流程图(汽车外观改装备案
- 下一篇: ddos攻击100g(10g ddos