Как получить ProcessID процесса ssh2_exec

Может ли кто-нибудь объяснить мне, как извлечь ProcessID из процесса, который запускается с ssh2_exec? Я пробовал много вещей, но он только дает следующее сообщение "Resource id #6"

Ниже приведен код, с которым я борюсь, но вместо того, чтобы отображать ProcessID, я получаю только "Resource id #6"

$pid = ssh2_exec($connection, 'cd /home/servers/; nohup ./sc_serv' .$config .' & > /dev/null 2>&1 & echo $!');

3 ответа

Я думаю, что это должно быть:

$pid = ssh2_exec($connection, 'cd /home/servers/; nohup ./sc_serv' .$config .' & > /dev/null 2>&1; echo $!');

Это поможет вам найти идентификатор процесса

<?php

//this will return the process id
$pid = getmypid();

//you can check the process id
if(file_exists('/proc/'.$pid))
{
    echo 'The process is still running.';
}

Чтобы получить идентификатор процесса, запущенного на удаленной машине с помощью ssh2_exec, вы можете сделать:

$cmd = "cd /home/servers/; nohup ./sc_serv' .$config .' & > /dev/null 2>&1 & echo $!"
$stdout_stream = ssh2_exec($connection, $cmd);
$dio_stream = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO);
stream_set_blocking($dio_stream, true);
$pid = stream_get_contents($dio_stream);
Другие вопросы по тегам