[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[orca-dev:00191] defunct process



 こんばんは、加藤です。

  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/