SharedWorker.php
public static function startDaemon(array $argv, $outputPath = null)
    {
        // This part purges the file descriptors of the daemon.
        // Caveat : it may contain "Bashisms", for example if a FD is >= 10.
        $fdPurge = implode(array_map(function ($fd) {
            return ' '.intval($fd).'>&-';
        }, IdentificationHelper::getMyFileDescriptors(false)));
        $command = implode(' ', array_map('escapeshellarg', $argv));
        system($command.' 0</dev/null 1'.(($outputPath !== null) ? ('>>'.escapeshellarg($outputPath)) : '>/dev/null').' 2>&1'.$fdPurge.' &');
    }
public static function startDaemon(array $argv, $outputPath = null)
    {
        // This part purges the file descriptors of the daemon.
        // Caveat : it may contain "Bashisms", for example if a FD is >= 10.
        $fdPurge = implode(array_map(function ($fd) {
            return ' '.intval($fd).'>&-';
        }, IdentificationHelper::getMyFileDescriptors(false)));
        $command = implode(' ', array_map('escapeshellarg', $argv));
        system($command.' 0</dev/null 1'.(($outputPath !== null) ? ('>>'.escapeshellarg($outputPath)) : '>/dev/null').' 2>&1'.$fdPurge.' &');
    }
public static function startDaemon ( array $ argv , $ outputPath = null ) { // This part purges the file descriptors of the daemon. // Caveat : it may contain "Bashisms", for example if a FD is >= 10. $ fdPurge = implode ( array_map ( function ( $ fd ) { return ' ' . intval ( $ fd ) . '>&-' ; } , IdentificationHelper :: getMyFileDescriptors ( false ) ) ) ; $ command = implode ( ' ' , array_map ( 'escapeshellarg' , $ argv ) ) ; system ( $ command . ' 0</dev/null 1' . ( ( $ outputPath !== null ) ? ( '>>' . escapeshellarg ( $ outputPath ) ) : '>/dev/null' ) . ' 2>&1' . $ fdPurge . ' &' ) ; }
@param array $argv
@param string|null $outputPath

@throws Exception\RuntimeException
@param array $argv @param string|null $outputPath