summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mbbsd/mbbsd.c15
-rw-r--r--sample/pttbbs.conf4
2 files changed, 17 insertions, 2 deletions
diff --git a/mbbsd/mbbsd.c b/mbbsd/mbbsd.c
index 00e4fa7a..97ba847a 100644
--- a/mbbsd/mbbsd.c
+++ b/mbbsd/mbbsd.c
@@ -1,4 +1,4 @@
-/* $Id: mbbsd.c,v 1.68 2003/03/24 10:28:24 in2 Exp $ */
+/* $Id: mbbsd.c,v 1.69 2003/03/28 14:15:20 in2 Exp $ */
#include "bbs.h"
#define SOCKET_QLEN 4
@@ -1256,7 +1256,18 @@ daemon_login(int argc, char *argv[], char *envp[])
setuid(BBSUID);
chdir(BBSHOME);
- snprintf(buf, sizeof(buf), "run/mbbsd.%d.pid", listen_port);
+#ifndef NO_FORK
+#ifdef PRE_FORK
+ if( listen_port == 23 ){ // only pre-fork in port 23
+ int i;
+ for( i = 0 ; i < PRE_FORK ; ++i )
+ if( fork() <= 0 )
+ break;
+ }
+#endif
+#endif
+
+ snprintf(buf, sizeof(buf), "run/mbbsd.%d.%d.pid", listen_port, getpid());
if ((fp = fopen(buf, "w"))) {
fprintf(fp, "%d\n", getpid());
fclose(fp);
diff --git a/sample/pttbbs.conf b/sample/pttbbs.conf
index 0b0e51d6..1903a6af 100644
--- a/sample/pttbbs.conf
+++ b/sample/pttbbs.conf
@@ -74,6 +74,10 @@
/* 設定最大可再買幾封信箱 (default: 1000) */
#define MAX_EXKEEPMAIL (1000)
+/* 對於 port 23的, 會預先 fork 幾隻出來. 如此在系統負荷高的時候,
+ 仍可有好的上站率 */
+//#define PRE_FORK 10
+
/* 前進站畫面 */
#define INSCREEN \
"前進站畫面 (請至 pttbbs.conf 修改您的前進站畫面)"