Запустите приложение на определенном X-сервере или VNC-порту

У меня есть приложение, которое я хотел бы запустить, но я бы хотел, чтобы оно было видно только через определенный порт VNC.

Я не хочу, чтобы приложение отображалось на обычном рабочем столе Ubuntu. Я хочу, чтобы приложение работало "в фоновом режиме" и было доступно для просмотра только через VNC. А при подключении к этому «альтернативному X-серверу» конечный пользователь не будет видеть ни строк меню, ни оконных декораций ... Только приложение.

Если подумать, то, что я прошу, это своего рода режим киоска только для определенного приложения, доступного через VNC.

Это возможно, или я действительно достигаю этого?

Спасибо!

Обратите внимание, что приложение, которое я хочу запустить таким образом, написано на Java. Это файл JNLP.

3
задан 2 October 2012 в 18:59

1 ответ

1117 Я успешно выполнил это. Вот как.


Установите необходимое программное обеспечение.

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer xvfb x11vnc vnc-java blackbox xterm

Установите пароль для подключения VNC.

x11vnc -storepasswd

Создайте файл сценария для запуска с помощью cron.

sudo nano /sflowtrend.sh

Это содержимое файла.

#!/bin/bash

log="/sflowtrend.log"

echo "Closing existing sFlowTrend windows gracefully." > $log
DISPLAY=:1 wmctrl -c "sFlowTrend"
sleep 5


echo "Killing all existing instances of java, Xvfb, and x11vnc." >> $log
for i in {1..3} ; do
        killall -q java
        killall -q x11vnc
        killall -q Xvfb
        echo "Iteration $i of kill cycle complete." >> $log
        sleep 2
done

echo >> $log

Xvfb :1 -screen 0 1200x800x24+32 -ac &
echo "Fake X launched." >> $log

x11vnc -display :1 --nocursor --httpdir /usr/share/vnc-java --httpport 6789 --usepw --forever --quiet --shared &
echo "VNC launched." >> $log

DISPLAY=:1 blackbox &
echo "BlackBok launched." >> $log

DISPLAY=:1 javaws /home/administrator/Downloads/sFlowTrend.jnlp &
echo "sFlowTrend (Java) launched." >> $log

echo >> $log

echo "Sleeping for one minute." >> $log
sleep 10
echo "Sleeping for fifty seconds." >> $log
sleep 10
echo "Sleeping for forty seconds." >> $log
sleep 10
echo "Sleeping for thirty seconds." >> $log
sleep 10
echo "Sleeping for twenty seconds." >> $log
sleep 10
echo "Sleeping for ten seconds." >> $log
sleep 10

echo >> $log

DISPLAY=:1 wmctrl -r "sFlowTrend" -b add,fullscreen
echo "sFlowTend now running in fullscreen." >> $log

echo >> $log

echo "Have fun!" >> $log

Редактировать crontab root.

sudo crontab -e

Добавить следующую строку в конец crontab.

@reboot bash /sflowtrend.sh

Перезагрузитесь и попробуйте подключиться к вашему серверу, порт 6789

http://ubuntu-hostname:6789

Это сработало для меня, и я хотел поделиться.

Веселитесь!


Источники

0
ответ дан 2 October 2012 в 18:59

Другие вопросы по тегам:

Похожие вопросы: