exec () не возвращает идентификатор процесса

Я использую PHP exec() функция для выполнения Кану ассемблер программы, и я хочу получить свой идентификатор процесса в том же сценарии.

Проблема в exec() не возвращая PID, даже процесс успешно выполняется.

Процессы запускаются так:

$gnuplot_path = '/usr/bin/gnuplot';

$command = 'nohup canu -d . -p E.coli gnuplot='.$gnuplot_path.' genomeSize=4.8m useGrid=false maxThreads=30 -pacbio-raw /path/to/p6.25x.fastq > /path/to/process.err 2>&1 &';

В настоящее время я пытаюсь определить, выполняется ли этот процесс:

$pid = exec($command, $output);
var_dump($pid);

а также это:

exec($command, $pid, $return_var);
print_r($pid);
echo "$return_var\n";

Тем не менее, я получил вывод string(0) "" а также Array ( ) 0 соответственно.

Пожалуйста, дайте мне знать, как решить эту проблему. Большое спасибо.

1

Решение

Этот хитрый. Что бы я сделал:

$gnuplot_path = '/usr/bin/gnuplot';
$command = 'nohup canu -d . -p E.coli gnuplot='.$gnuplot_path.' genomeSize=4.8m useGrid=false maxThreads=30 -pacbio-raw /path/to/p6.25x.fastq > /path/to/process.err 2>&1';
$command .= ' & echo $!';

$pid = exec($command, $output, $a);
var_dump($output[0]);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]