Я использую 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
соответственно.
Пожалуйста, дайте мне знать, как решить эту проблему. Большое спасибо.
Этот хитрый. Что бы я сделал:
$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]);
Других решений пока нет …