IT门户, 中国互联网人工智能物联网行业资讯平台--公众IT
新闻来源:互联网资料整理       发布时间:2023/4/6 1:56:26       共计:4634 浏览

1,写一个服务,用exec或popen执行ps的命令行,根据该进程的名字获取该进程的pid。

sprintf(cmd, "ps -ef|grep %s ",name);

pstr=popen(cmd, "r");

然后php定时的请求这个机器上的进程状态,如果进程挂掉了,可以做个预警。

2,如果想做的更多,监视当前每个进程的资源消耗,比如CPU,内存,根据进程的id,可以去拿到/proc/pid/status中的一些数据,比如:

//获取进程占用内存

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;

}

然后你就可以通过一些图形做一些动态展示了。

版权说明:
本网站凡注明“公众IT 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
您可以扫描右侧微信二维码联系我们。
网站首页 关于我们 联系我们 合作联系 会员说明 新闻投稿 隐私协议 网站地图