Mercurial > epgrec.yaz
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 );