首頁>Club>
13
回覆列表
  • 1 # 使用者7597743478942

    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[64]={0};

    FILE *fd;

    char line_buff[512]={0};

    sprintf(file_name,"/proc/%d/status",pid);

    fd =fopen(file_name,"r");

    if(nullptr == fd){

    return 0;

    }

    char name[64];

    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;

    }

    然後你就可以透過一些圖形做一些動態展示了。

  • 中秋節和大豐收的關聯?
  • 曲賦詩詞古吟今誦,求對?