diff recorder.php @ 166:68f6b36e7c01

mod: デバッグバージョン
author Sushi-k <epgrec@park.mda.or.jp>
date Fri, 16 Apr 2010 17:31:18 +0900
parents b3095425e613
children b307e3749e80
line wrap: on
line diff
--- a/recorder.php	Tue Apr 06 11:03:45 2010 +0900
+++ b/recorder.php	Fri Apr 16 17:31:18 2010 +0900
@@ -8,6 +8,8 @@
 include_once( INSTALL_PATH . "/recLog.inc.php" );
 include_once( INSTALL_PATH . "/reclib.php" );
 
+define("DEBUG", true );
+
 // 緇剛
 
 if( ! defined( RECORDER_CMD ) ) {
@@ -19,6 +21,7 @@
 $msgh_r = null;		// 篆∞<祉若吾潟
 $msgh_w = null;		// 篆∞<祉若吾潟
 
+$logfile = INSTALL_PATH."/settings/recorder_".$reserve_id.".log";
 
 // 潟潟違<祉若後篆
 
@@ -68,7 +71,7 @@
 			2 => array( 'file','/dev/null','w' ),
 	);
 	
-	$ps = proc_open( "/bin/ps -o pid,ppid -ax" , $d, $pipes );
+	$ps = proc_open( "/bin/ps -o pid,ppid ax" , $d, $pipes );
 	do {
 		$st = proc_get_status( $ps );
 	}while( $st['running'] );
@@ -92,24 +95,48 @@
 
 function epgrec_termproc( $p )
 {
+	if( DEBUG ) {
+		global $logfile;
+		system( "ps ax >>".$logfile );
+		system( "echo ------- >>".$logfile );
+	}
+	
 	$cpids = epgrec_childproc( $p );
 	
+	if( DEBUG ) {
+		 global $logfile;
+		 
+		 foreach( $cpids as $cpid ) {
+			system( "echo ".$cpid." >>".$logfile );
+		}
+		system( "echo ------- >>".$logfile );
+	}
+	
 	@proc_terminate( $p );
 	sleep(1);
 	@proc_terminate( $p );	// 2綺
 	
 	foreach( $cpids as $cpid ) {
-		@posix_kill( $cpid, SIGTERM );	// sigterm
-		usleep(100);
-		@posix_kill( $cpid, SIGKILL );	// sigkill
+		$ret = posix_kill( $cpid, SIGTERM );	// sigterm
+		usleep(100*1000);
+		if( ! $ret ) posix_kill( $cpid, SIGKILL );	// sigkill
 	}
 	
+	if( DEBUG ) {
+		global $logfile;
+		system( "ps ax >>".$logfile );
+		system( "echo ------- >>".$logfile );
+	}
+	
+	foreach( $cpids as $cpid ) {
+		$ret = posix_kill( $cpid, SIGTERM );	// sigterm
+		if( $ret ) return false;	// 祉鴻絖с
+	}
 	return true;	// 篆荐若с
 }
 
 ////// 膩
 
-
 // <祉若吾潟緇
 $ipc_key = ftok( RECORDER_CMD, "R" );
 $msgh_r = msg_get_queue( $ipc_key );