Итак, у меня есть VPS, работающий с gnome-терминал, и я использую следующий скрипт php для выполнения команд на удаленном сервере.
<?php
include('Net/SSH2.php');
$ssh = new Net_SSH2('IP address');
if (!$ssh->login('root', 'rthtrhtrhrthrthrth')) {
exit('Login Failed');
}
echo $ssh->exec('gnome-terminal -e java -jar run.jar --window-with-profile=b1dcc9dd-5262-4d8d-a863-c897e6d979b9');
?>
Который, когда я запускаю скрипт, я получаю следующую ошибку
** (gnome-терминал: 1952): ПРЕДУПРЕЖДЕНИЕ **: Не удалось открыть дисплей X Не удалось проанализировать аргументы: Не удалось открыть дисплей:
Я пытаюсь заставить его выполнить команду с удаленного сервера, которая будет выполняться в gnome-терминал и открыть файл JAR. В значительной степени, когда команда shell выполняется на моем удаленном сервере, подключается к ssh и запускает команду gnome-terminal, чтобы открыть настольное приложение на этом VPS.
Это возможно или я что-то не так делаю?
ОБНОВИТЬ
В Putty я заработал, выполнив следующие команды
export DISPLAY=:1
gnome-terminal -e "java -jar file.jar"
Но все еще пытаюсь выполнить его с моим веб-сервером, используя
<?php
include('Net/SSH2.php');
$ssh = new Net_SSH2('IP address');
if (!$ssh->login('root', 'rthtrhtrhrthrthrth')) {
exit('Login Failed');
}
echo $ssh->exec('export DISPLAY=:1');
echo $ssh->exec('gnome-terminal -e "java -jar run.jar"');
?>
Я все еще получаю сообщение об ошибке, когда он не может открыть X дисплей. Я только пытаюсь передать это на VPS, не отображать ничего на веб-сервере
У VPS есть работающий X?
Я бы предложил немного другой подход:
Вместо того, чтобы запускать gnome-терминал, вы можете выполнять вещи напрямую, используя ssh.
Имейте в виду, что ваш php будет зависать до тех пор, пока не завершится Java. Добавить «&msgstr «в конце вашей команды, если вы хотите отсоединить ее от ssh.
Других решений пока нет …