2016-07-19 2 views
1

Хорошо, поэтому у меня есть VPS, работающий с терминалом gnome, и я использую следующие команды выполнения скриптов php на удаленном сервере.Выполнять gnome-терминал с удаленного сервера

<?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'); 
?> 

Что, когда я запускаю сценарий, я получаю следующую ошибку

** (гном-терминал: 1952): ПРЕДУПРЕЖДЕНИЕ **: открытая X дисплей не удалось Невозможно разобрать аргументы: не удается открыть дисплей:

Я пытаюсь запустить его с удаленного сервера, который будет выполняться в gnome-терминале и открыть файл jar. В значительной степени, когда команда оболочки выполняется на моем удаленном сервере, подключается к ssh и запускает команду gnome-terminal, чтобы открыть настольное приложение на этом VPS.

Возможно ли это, или я делаю что-то неправильно?

UPDATE

В Putty я получил его на работу по issueing следующие команды

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"'); 
?> 

Я m все еще получает ошибку, когда он не может открыть X-дисплей. Я только пытаюсь передать это на VPS, а не отображать что-либо на веб-сервере.

+0

попробуйте вручную подключить ssh к этому серверу и запустить свой код, если он не сработает, попробуйте использовать escapeshellarg() для аргументов оболочки. –

+0

Он будет делать то же самое. @ NicolòCozzani – Xylate

+0

Что я пытаюсь сделать, так это открыть приложение через SSH и перенаправить его на gnome-desktop на VPS – Xylate

ответ

0

Имеет ли VPS работу X? Я бы предложил несколько иной подход: Вместо запуска gnome-терминала вы могли бы также выполнить материал напрямую с помощью ssh. Готовьте, что ваш php будет висеть до тех пор, пока Java не будет завершен. Добавьте «&» в конце вашей команды, если вы хотите, чтобы он отсоединился от ssh.

+0

Да, он работает, поскольку я сказал, что могу получить его работать и открывать приложение в среде рабочего стола на VPS, но пытаться выполнить его на веб-сервере, я не могу заставить его работать с export display =: 1 в моем php-скрипте, хотя – Xylate

+0

Я могу удаленно сделать это через SSH, и он открывает приложение на сервере, просто не может заставить его работать с моим php-скриптом. – Xylate

+0

Может ли это быть правдой, относящейся к X. В прежние времена я застрял, делая «xhost +» повсюду. – Clusty