在linux中通過程序名獲得程序id

2021-06-22 02:12:42 字數 603 閱讀 7667

當需要kil乙個程序時,需要提供乙個pid(使用kill命令)或提供乙個程序名(使用pkill命令)。

pkill是如何通過程序名得到程序id的?

在linux中程序是通過檔案來表示的,資訊都儲存在/proc/pid目錄中。

在/proc/pid/status檔案的第一行,儲存有程序名,和使用者輸入的進行比對,如果一致,就新增到動態陣列中,最後返回。

附**:

long* find_pid_by_name( char* pidname)

if (fgets(buffer, read_buf_size-1, status) == null)

fclose(status);

//得到程序id

/* buffer should contain a string like "name:   binary_name" */

sscanf(buffer,"%*s %s", name);

if (strcmp(name, pidname) == 0)

}if (pidlist)

return null;

}注:該**在busybox0.6.3/libbb/find_pid_by_name.c

Linux下通過程序名檢測程序是否在執行

此方測試可行,其它見注釋。int isrun string procname struct dirent ent readdir lpdir 讀取 proc目錄下面所有目錄 主要是讀取目錄名為數字的檔案,每個執行中的程序在此都有乙個以程序pid為名稱對應的目錄 所以我採取的訪求是依此的將這些目錄下面...

修改程序名(程序在ps top 中的顯示)

偶爾看到一段 是修改程序名的,覺得不對,遂網上查之。結果如下 每乙個c程式都有個main函式,作為程式啟動入口函式。main函式的原型是int main int argc char argv 其中argc表示命令行引數的個數 argv是乙個指標陣列,儲存所有命令列字串。linux程序名稱是通過命令列...

裝置在Linux中的檔名

裝置 檔名scsi sata usb硬碟驅動器 dev sd a p u盤 dev sd a p virtio介面 dev vd a p 軟盤驅動器 dev fd 0 7 印表機 dev lp 0 2 25針介面 dev usb lp 0 15 usb介面 滑鼠 dev input mouse 0 ...