回文章列表
作者cerebellum.bbs@cpu.tfcis.org (ymca) 看板: itoc
標題Re: [問題] QKMJ 功能的潛藏危機
時間動力核心 (2007/09/27 Thu 14:20:18)
在ptt cutecp的幫忙下  稍微對程式做了一點修改  針對的是ubuntu linux
做此修改的原因為top匯出格式的不同  linux匯出預設12個欄位....

※ 引述《BioStar.bbs@micro.bio.ncue.edu.tw (澎湖小雲雀)》之銘言:
 /* 改用比對 pid 方式檢查 */
 #include <stdio.h>
 int
 main()
 {
   int line;
   FILE *fp;
   char a[20], b[20], c[20], d[20], e[20], f[20];
-   char g[20], h[20], i[20], j[20], k[20];
+   char g[20], h[20], i[20], j[20], k[20], l[20];
  char cmd[128], *str;
   char tmpfile[32];
   int process_a[16], process_b[16], ii, jj;
   strcpy(tmpfile, "/tmp/killtop1");
   /* 只取出非 idle 中的 qkmj */
-   sprintf(cmd, "top -I | grep qkmj > %s", tmpfile);
+   sprintf(cmd, "top -i -b -n 1 | grep qkmj > %s", tmpfile);
   /* 製作第一份執行中 qkmj 程序名單 */
   system(cmd);
   if (!(fp = fopen(tmpfile, "r")))
     return -1;
   for (line = 0; line <= 14; line++)
-     if (fscanf(fp, "%s %s %s %s %s %s %s %s %s %s %s",
-       a, b, c, d, e, f, g, h, i, j, k) == 11)
+     if (fscanf(fp, "%s %s %s %s %s %s %s %s %s %s %s %s",
+       a, b, c, d, e, f, g, h, i, j, k, l) == 12)
       process_a[line] = atoi(a);
     else
       process_a[line] = 0;
   fclose(fp);
   unlink(tmpfile);
   sleep(5);     /* 小睡五秒 */
   /* 製作第二份執行中 qkmj 程序名單 */
   system(cmd);
   if (!(fp = fopen(tmpfile, "r")))
     return -1;
   for (line = 0; line <= 14; line++)
-     if (fscanf(fp, "%s %s %s %s %s %s %s %s %s %s %s",
-       a, b, c, d, e, f, g, h, i, j, k) == 11)
+     if (fscanf(fp, "%s %s %s %s %s %s %s %s %s %s %s %s",
+       a, b, c, d, e, f, g, h, i, j, k, l) == 12)

       process_b[line] = atoi(a);
     else
       process_b[line] = 0;
   fclose(fp);
   unlink(tmpfile);
   /* 比對兩份 qkmj 程序名單 */
   for (ii = 0; ii <= 14; ii++)
   {
     if (!process_a[ii])
       break;
     for (jj = 0; jj <= 14; jj++)
     {
       if (!process_b[jj])
         break;
       if (process_a[ii] == process_b[jj])       /* 如果發現有相同 */
       {
         sprintf(cmd, "kill -9 %d", process_a[ii]);
         system(cmd);    /* 代表這極有可能是死程序,必須 kill 掉 */
       }
     }
   }
   return 0;
 }


--
=[:摃��:﹎Origin ]|[  Ocpu.tfcis.org  ]|[�搟說:]=
=[:摃�╱�:Author ]|[      140.116.64.220      ]|[�:]=
文章選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻