# HG changeset patch # User Sushi-k # Date 1271406678 -32400 # Node ID 68f6b36e7c0186f0322526a5e9144986c76a9887 # Parent 254d8a21bf3627ef39d369b89392985c7190ed9c mod: デバッグバージョン diff -r 254d8a21bf36 -r 68f6b36e7c01 recorder.php --- 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 );