日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux通过进程名查找进程,Linux下通过进程名获得进程号

發布時間:2025/3/20 linux 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux通过进程名查找进程,Linux下通过进程名获得进程号 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

因為存在多進程和線程,Linux下同一個進程名有可能有多個進程號。下面的程序可以一次獲得同一進程名的所有進程號。

process.h

#ifndef __PROCESS_H__

#define __PROCESS_H__

char *basename(const char *path);

int get_pid_by_name(const char* process_name, pid_t pid_list[], int list_size);

int is_process_exist(const char* process_name);

#endif /* __PROCESS_H__ */

process.c (使用/proc/pid/exe 查找進程名有時候會有問題,比如busybox中的命令,查到的是busybox)

修改為使用/proc/pid/cmdline來查找。

#include

#include

#include

#include

#include

#include

#include

#include

char *basename(const char *path)

{

register const char *s;

register const char *p;

p = s = path;

while (*s) {

if (*s++ == '/') {

p = s;

}

}

return (char *) p;

}

/* find all pid of process by name, only compare base name of pid_name

* pid_list: caller malloc pid_t array

* list_size: the size of pid_list

* RETURN:

* < 0: error number

* >=0: how many pid found, pid_list will store the founded pid

*/

int get_pid_by_name(const char* process_name, pid_t pid_list[], int list_size)

{

#define MAX_BUF_SIZE 256

DIR *dir;

struct dirent *next;

int count=0;

pid_t pid;

FILE *fp;

char *base_pname = NULL;

char *base_fname = NULL;

char cmdline[MAX_BUF_SIZE];

char path[MAX_BUF_SIZE];

if(process_name == NULL || pid_list == NULL)

return -EINVAL;

base_pname = basename(process_name);

if(strlen(base_pname) <= 0)

return -EINVAL;

dir = opendir("/proc");

if (!dir)

{

return -EIO;

}

while ((next = readdir(dir)) != NULL) {

/* skip non-number */

if (!isdigit(*next->d_name))

continue;

pid = strtol(next->d_name, NULL, 0);

sprintf(path, "/proc/%u/cmdline", pid);

fp = fopen(path, "r");

if(fp == NULL)

continue;

memset(cmdline, 0, sizeof(cmdline));

if(fread(cmdline, MAX_BUF_SIZE - 1, 1, fp) < 0){

fclose(fp);

continue;

}

fclose(fp);

base_fname = basename(cmdline);

if (strcmp(base_fname, base_pname) == 0 )

{

if(count >= list_size){

break;

}else{

pid_list[count] = pid;

count++;

}

}

}

closedir(dir) ;

return count;

}

/* If process is existed, return true */

int is_process_exist(const char* process_name)

{

pid_t pid;

return (get_pid_by_name(process_name, &pid, 1) > 0);

}

main.c

#include

#include

#include "process.h"

#define MAX_PID_NUM???? 32

int main(int argc, char* argv[])

{

char* process;

int ret = 0;

int n;

pid_t pid[MAX_PID_NUM];

if(argc < 2)

process = argv[0];

else

process = argv[1];

ret = get_pid_by_name(process, pid, MAX_PID_NUM);

printf("process '%s' is existed? (%d): %c\n", process, ret, (ret > 0)?'y':'n');

for(n=0;n

printf("%u\n", pid[n]);

}

return ret;

}

Makefile:

PROG=check_process

OBJS=process.o main.o

#CFLAGS = -g -ggdb

all:$(PROG)

check_process:$(OBJS)

$(CC) -o $@ $^ $(LDFLAGS)

%.o:%.c

$(CC) -c -o $@ $(CFLAGS) $<

clean:

rm -rf $(PROG) *.o

總結

以上是生活随笔為你收集整理的linux通过进程名查找进程,Linux下通过进程名获得进程号的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品一区二区人人爽 | 国产污视频| 久久青青草原亚洲av无码麻豆 | 电影《两个尼姑》免费播放 | 成人黄色在线网站 | 美国一区二区三区 | 无码人妻精品一区二区三区99日韩 | 婷婷日| 一区二区三区免费网站 | 色婷婷久久 | jizzzxxxx| 成熟女人毛片www免费版在线 | 免费看黄色片的网站 | 丝袜美腿av在线 | 加勒比综合网 | 国产一级视频在线观看 | 人人做人人爽人人爱 | 日日夜夜免费精品视频 | 天堂av亚洲av国产av电影 | 天天干夜夜 | 日韩不卡视频在线 | 男人日女人在线观看 | wwww欧美| 午夜狠狠干 | 美女三级视频 | 国产爽爽视频 | 久久精品视频免费看 | 插我舔内射18免费视频 | 色偷偷免费费视频在线 | 国产精品美女毛片真酒店 | 欧美成人手机在线 | 国产精选网站 | 第一页在线 | 欧美日韩一区二区在线观看 | 成人三级晚上看 | 奇米影视第四色777 波多野结衣一区二区三区免费视频 | 少妇高潮av | 久草视频免费播放 | 五月伊人婷婷 | 欧美日韩在线一区 | 国产精品污www一区二区三区 | www.毛片| 国产福利小视频 | 一本一道av | 亚洲国产日韩一区二区 | 九九久久国产视频 | 午夜视频在线看 | 视频区小说区图片区 | www.色天使| 日韩精品成人 | 欧美黄色一区二区三区 | 国产精品色婷婷99久久精品 | 久久成年网| 免费黄色小视频网站 | 欧美国产大片 | 天天cao| 韩国三级视频在线观看 | 久久久久久久久免费视频 | 欧美人体一区二区三区 | 全黄一级片 | 裸体裸乳被免费看视频 | 轻轻色在线观看 | 国产偷人视频 | 男人天堂a在线 | 亚洲偷 | 中文字幕在线观看高清 | 老牛影视一区二区三区 | 免费观看一区二区三区视频 | 黄色av网站免费观看 | 久草国产在线 | 欧美精品乱码视频一二专区 | 亚洲涩色 | a级免费视频 | 欧产日产国产精品 | 亚洲人成免费电影 | 国产麻豆剧传媒精品国产 | 天天舔天天爽 | 欧美风情第一页 | 国产女人18毛片水18精 | 天堂网在线播放 | 91久久久久久久久久久久久 | 久久久久久久中文字幕 | 成年人在线视频免费观看 | 极品美女啪啪 | 在线观看jizz | 国产区一区二区 | 久艹视频在线观看 | 欧美午夜精品久久久久久孕妇 | 一区二区三区福利 | 国产专区自拍 | 久草视频免费在线观看 | 精品人成 | 精品久久久久久一区二区里番 | 成人久久18免费网站图片 | 淫欲av| 久久免费在线观看视频 | 人妻丰满熟妇aⅴ无码 | 91黄址| 中国黄色一级大片 |