此方測試可行,其它見注釋。
int isrun(string & procname)
struct dirent *ent = readdir(lpdir);
//讀取/proc目錄下面所有目錄 主要是讀取目錄名為數字的檔案,每個執行中的程序在此都有乙個以程序pid為名稱對應的目錄
//所以我採取的訪求是依此的將這些目錄下面的cmdline檔案裡的字元讀取提取,然後和要檢測的程序名對比。也可以讀取其它檔案裡的資訊分析出程序名,此處只是
一種方法。
while(null != ent)
;int len = fread(buf, 1, sizeof(buf)-4, fp);
string str= buf;
trimstr(str);
//procname在執行
if ( str == procname )
fclose(fp);
} }}
ent = readdir(lpdir);
}if(null != lpdir)
return iret;
}
在linux中通過程序名獲得程序id
當需要kil乙個程序時,需要提供乙個pid 使用kill命令 或提供乙個程序名 使用pkill命令 pkill是如何通過程序名得到程序id的?在linux中程序是通過檔案來表示的,資訊都儲存在 proc pid目錄中。在 proc pid status檔案的第一行,儲存有程序名,和使用者輸入的進行比...
linux下程序名和程序id的轉換
1.由程序名得到程序id pidof xx 其中xx是程序名 2.由程序id得到程序名 readlink proc exe,其中 是程序的id 3.如果是shell程式,因為shell的程序名是相應的shell名,所以不能直接根據shell指令碼的名字來獲取其程序id,可以由以下兩種方法 以sh為例...
Linux下檢測程序是否存在
這個問題看起來好像很簡單,ps ef grep xx 一下就行啦!這樣做當然可以,但是如果我們考究起效能來,這恐怕不是個好辦法。假設我們現在要監測某程序是否存活,每分鐘檢查一次,用上面的辦法就要每分鐘執行一次ps命令並且做一次grep正則查詢。這點開銷在伺服器上似乎不算什麼,然而如果我們要在同一節點...