static public function cleanup( $opts=array() )
    {
        if ( strtoupper( substr( PHP_OS, 0, 3 ) ) == 'WIN' )
        {
            exec( 'tasklist /FO CSV', $runningProcesses, $return_var );
            $runningProcesses = array_map(
                function( $line ){ $cols = explode( ',', $line ); return trim( $cols[1], '"' ); },
                $runningProcesses );
            unset( $runningProcesses[0] ); // 'PID'
            sort( $runningProcesses );
            unset( $runningProcesses[0] ); // 0
        }
        else
        {
            exec( 'ps -e -o pid', $runningProcesses, $return_var );
        }

        if ( $return_var != 0 )
        {
            pake_echo_error( "Could not get list of processes to remove stale lock files" );
            return;
        }

        $lockDir = self::lockDir( $opts );
        foreach( glob( $lockDir . "/*_W.lock" ) as $writeLock )
        {
            $pid = file_get_contents( $writeLock ); //strstr( file_get_contents( $writeLock ), ' ', true );
            if ( !in_array( $pid, $runningProcesses ) )
            {
                pake_unlink( $writeLock );
            }
        }
        foreach( glob( $lockDir . "/*_R/*.lock" ) as $readLock )
        {
            $pid = file_get_contents( $readLock ); // strstr( file_get_contents( $readLock ), ' ', true );
            if ( !in_array( $pid, $runningProcesses ) )
            {
                pake_unlink( $readLock );
            }
        }
    }
static public function cleanup( $opts=array() )
    {
        if ( strtoupper( substr( PHP_OS, 0, 3 ) ) == 'WIN' )
        {
            exec( 'tasklist /FO CSV', $runningProcesses, $return_var );
            $runningProcesses = array_map(
                function( $line ){ $cols = explode( ',', $line ); return trim( $cols[1], '"' ); },
                $runningProcesses );
            unset( $runningProcesses[0] ); // 'PID'
            sort( $runningProcesses );
            unset( $runningProcesses[0] ); // 0
        }
        else
        {
            exec( 'ps -e -o pid', $runningProcesses, $return_var );
        }

        if ( $return_var != 0 )
        {
            pake_echo_error( "Could not get list of processes to remove stale lock files" );
            return;
        }

        $lockDir = self::lockDir( $opts );
        foreach( glob( $lockDir . "/*_W.lock" ) as $writeLock )
        {
            $pid = file_get_contents( $writeLock ); //strstr( file_get_contents( $writeLock ), ' ', true );
            if ( !in_array( $pid, $runningProcesses ) )
            {
                pake_unlink( $writeLock );
            }
        }
        foreach( glob( $lockDir . "/*_R/*.lock" ) as $readLock )
        {
            $pid = file_get_contents( $readLock ); // strstr( file_get_contents( $readLock ), ' ', true );
            if ( !in_array( $pid, $runningProcesses ) )
            {
                pake_unlink( $readLock );
            }
        }
    }
static public function cleanup ( $ opts = array ( ) ) { if ( strtoupper ( substr ( PHP_OS , 0 , 3 ) ) == 'WIN' ) { exec ( 'tasklist /FO CSV' , $ runningProcesses , $ return_var ) ; $ runningProcesses = array_map ( function ( $ line ) { $ cols = explode ( ',' , $ line ) ; return trim ( $ cols [ 1 ] , '"' ) ; } , $ runningProcesses ) ; unset ( $ runningProcesses [ 0 ] ) ; // 'PID'
 sort ( $ runningProcesses ) ; unset ( $ runningProcesses [ 0 ] ) ; // 0
 } else { exec ( 'ps -e -o pid' , $ runningProcesses , $ return_var ) ; } if ( $ return_var != 0 ) { pake_echo_error ( "Could not get list of processes to remove stale lock files" ) ; return ; } $ lockDir = self :: lockDir ( $ opts ) ; foreach ( glob ( $ lockDir . "/*_W.lock" ) as $ writeLock ) { $ pid = file_get_contents ( $ writeLock ) ; //strstr( file_get_contents( $writeLock ), ' ', true );
 if ( ! in_array ( $ pid , $ runningProcesses ) ) { pake_unlink ( $ writeLock ) ; } } foreach ( glob ( $ lockDir . "/*_R/*.lock" ) as $ readLock ) { $ pid = file_get_contents ( $ readLock ) ; // strstr( file_get_contents( $readLock ), ' ', true );
 if ( ! in_array ( $ pid , $ runningProcesses ) ) { pake_unlink ( $ readLock ) ; } } }
Removes orphaned lock files - by checking their PIDs against running processes
@param array $opts
Removes orphaned lock files - by checking their PIDs against running processes