Я пытаюсь запустить длинную команду с удаленного сервера на php с помощью экрана, но я хочу убедиться, что экран в конце команды убит. Поэтому я пытаюсь использовать «echo $ STY», чтобы получить идентификатор экрана и убить его таким образом. по какой-то причине это не работает. Есть идеи:
ssh2_exec($conn, 'screen');
$getscreen =ssh2_exec($conn, 'echo $STY');
stream_set_blocking($getscreen, true);
$stream_outA = ssh2_fetch_stream($getscreen, SSH2_STREAM_STDIO);
$valA =fgets($stream_outA,160);
$scrnids =explode('.',$valA);
var_dump($scrnids);
$killcommand = 'screen -X -S '.$scrnids[0].' kill';
$stream = ssh2_exec($conn, $command);
.....
ssh2_exec($conn, $killcommand);
ssh2_exec($conn, 'exit'); //just in case
unset($conn);
дамп var просто выводит:
array (size=1)
0 => string '
' (length=1)
Задача ещё не решена.
Других решений пока нет …