[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[orca-dev:00191] defunct process
- To: orca-dev@xxxxxxxxxxxxxx
- Subject: [orca-dev:00191] defunct process
- From: Tomohiro 'Tomo-p' KATO <tomop@xxxxxxxxxxxxx>
- Date: Sat, 28 Sep 2002 19:15:38 +0900
こんばんは、加藤です。
Vine Linux 上で動作させていると bash のプロセスが zombie 化して蓄積して
いくので、廃品回収するためのハンドラを追加しました。
以下に patch を付けますので、問題なさそうでしたら merge してください。
---- ここから
diff -urN panda-1.0.7p1.orig/aps/aps_main.c panda-1.0.7p1/aps/aps_main.c
--- panda-1.0.7p1.orig/aps/aps_main.c Thu Sep 26 16:19:14 2002
+++ panda-1.0.7p1/aps/aps_main.c Sat Sep 28 19:05:22 2002
@@ -28,6 +28,8 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
+#include <sys/types.h>
+#include <sys/wait.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
@@ -216,6 +218,20 @@
dbgmsg("<StopProcess");
exit(ec);
}
+
+static void
+OnChildExit(
+ int ec)
+{
+dbgmsg(">OnChildExit");
+
+ while( waitpid(-1, NULL, WNOHANG) > 0 );
+
+ (void)signal(SIGCHLD, (void *)OnChildExit);
+
+dbgmsg("<OnChildExit");
+}
+
static ARG_TABLE option[] = {
{ "port", STRING, TRUE, (void*)&PortNumber,
"ポート番号"
},
@@ -286,6 +302,7 @@
int rc;
(void)signal(SIGHUP,(void *)StopProcess);
+ (void)signal(SIGCHLD, (void *)OnChildExit);
SetDefault();
fl = GetOption(option,argc,argv);
---- ここまで
-- ________________________________
_/_/ Tomohiro "Tomo-p" KATO
_/_/ e-mail : tomop@xxxxxxxxxxxxx
_/_/ http://www.teamgedoh.net/