回精華區
作者waynesan.bbs@csc241.tcssh.tc.edu.tw (哇係阿虎) 看板: plan
標題[功能] admutil.c 線上重啟母bbsd
時間local (2004/05/20 Thu 10:26:09) Updated: 2004/05/20
: global.h

+ #define FN_RUN_FILE   "run/bbs.run"   /* waynesan.040520:線上重啟bbsd */

#define FN_RUN_USIES    "run/usies"     /* BBS log */

: bbsd.c:start_daemon()

    sprintf(data, "%d\t%s\t%d\tinetd -i\n", getpid(), buf, port);
    f_cat(PID_FILE, data);

+   sprintf(data, "%d\n", getpid());  /* waynesan.040520:線上重啟bbsd */
+   f_cat(FN_RUN_FILE, data);

    return;
  }

  ...
  ...

  /* standalone */
  sprintf(data, "%d\t%s\t%d\n", getpid(), buf, port);
  f_cat(PID_FILE, data);

+ sprintf(data, "%d\n", getpid());  /* waynesan.040520:線上重啟bbsd */
+ f_cat(RUN_FILE, data);
}

: menu.c:menu_admin[]

  "bin/admutil.so:a_resetsys", PERM_ALLADMIN, - M_SYSTEM,
  "BBSreset   ◤ 重置系統 ◢",

+ "bin/admutil.so:a_rebbsd", PERM_SYSOP, - M_SYSTEM,
+ "Rebbsd     ◤ 重啟bbsd ◢",

  menu_main, PERM_MENU + Ctrl('A'), M_AMENU,
  "系統維護"
};

: admutil.c:a_rebbsd() 新增此函式在 a_resetsys() 後面

/* ----------------------------------------------------- */
/* waynesan.040519線上重啟bbsd                           */
/* ----------------------------------------------------- */

int
a_rebbsd()
{
  if (vans("確定要重啟bbsd(Y/N)?[N] ") == 'y')
  {
    FILE *fp;
    char buf[20], tmp[10];

    if (fp = fopen(FN_RUN_FILE, "r"))
    {
      fscanf(fp, "%s", tmp);
      fclose(fp);
      f_rm(FN_RUN_FILE);

      sprintf(buf, "kill %s", tmp);
      system(buf);
      system("bin/bbsd");         /* standalone 才需要這行 */
      vmsg("bbsd已重啟");
    }
  }
  return XEASY;
}

--
    ╴╴
  ▔▔\  國度 Charming Shadow Country
  /\  入境位址 csc241.twbbs.org
\/  位址代碼 203.71.212.241
  \╴╴  來源母國 203.71.212.124
  ▔▔\  發表時間 2004/05/20 Thu 10:04:04
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻