Linux C根据进程特征名称确认进程是否存在
不同系统可能存在一定差异,但主要思路是通过执行命令行指令ps命令查看进程信息进行判断。
如下代码:
int detectProcessByName(char * processName)
{
FILE* fp = NULL;
int count = 1;
int BUFSZ = 100;
char buf[BUFSZ];
char command[150];
if(snprintf(command, 150, "ps -C %s | grep %s", processName, processName) < 0)
return -1;
if((fp = popen(command,"r")) == NULL)
{
return -2;
}
if((fgets(buf, BUFSZ, fp))!= NULL)
{
pclose(fp);
fp = NULL;
if(NULL != strstr(buf, processName))
return 0;
}
return -3;
}
int res = detectProcessByName("ky_d");
if(res <0)
{
LOGE("not find ky_d.res:%d", res);
}
else {
LOGD("find ky_d.");
}