ssh2_exec rand возвращает идентификатор процесса?

Иногда, когда я запускаю этот код, я получаю процесс и идентификатор, и иногда команда выполняется, но возврат данных остается пустым? Кто-нибудь знает, как правильно поймать поток?

/** * Run command in background and returns the process id * * @param string $cmd * @return int process id */ public function runBackground($cmd) { $cmd = $cmd." > /dev/null & echo $!"; if (!($stream = ssh2_exec($this->_connection, $cmd ))) { return "fail: unable to execute command\n"; } else { // collect returning data from command stream_set_blocking($stream, true); $data = ""; while ($buf = fread($stream,4096)) { $data .= $buf; } fclose($stream); return (int)$data; } }