Получение идентификатора запущенного процесса с использованием SSH2 – phpseclib

Я использую phpseclib, Net_SSH2.

Мне нужно получить идентификатор процесса сервера/процесса, запущенного этой командой.

echo $ssh->exec('java -Xmx256M -Xms32M -jar minecraft_server.jar nogui');

Это так, что я могу сохранить его и иметь возможность убить его с помощью PHP-скрипта в любое время.


person Harry Beasant    schedule 01.09.2012    source источник
comment
Проверьте это   -  person Peter    schedule 01.09.2012


Ответы (2)


Вы можете попробовать:

echo $ssh->exec('java -Xmx256M -Xms32M -jar minecraft_server.jar nogui > /dev/null 2>&1 & echo $!;');
person Aurimas Ličkus    schedule 01.09.2012

Даже это сработает, если вы хотите отслеживать PID конкретной команды после ее выполнения.

$cmd = 'java -Xmx256M -Xms32M -jar minecraft_server.jar nogui';
$pid = $ssh->exec('echo `ps aux | grep -F "' . $cmd . '" | grep -v -F "grep" | awk \'{ print $2 }\'`');
echo $pid;  

Убить же:

$ssh->exec("kill -9 $pid");
person Mayura    schedule 01.09.2012