Запустите приложение на определенном X-сервере или VNC-порту
У меня есть приложение, которое я хотел бы запустить, но я бы хотел, чтобы оно было видно только через определенный порт VNC.
Я не хочу, чтобы приложение отображалось на обычном рабочем столе Ubuntu. Я хочу, чтобы приложение работало "в фоновом режиме" и было доступно для просмотра только через VNC. А при подключении к этому "альтернативному X-серверу" конечный пользователь не будет видеть ни строки меню, ни оконные декорации... Только приложение.
Если подумать, то, что я прошу, это своего рода режим киоска только для определенного приложения, доступного через VNC.
Это возможно, или я действительно достигаю здесь?
Спасибо!
Обратите внимание, что приложение, которое я хочу запустить таким образом, написано на Java. Это файл JNLP.
1 ответ
Я успешно достиг этого. Вот как.
Установите необходимое программное обеспечение.
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
Это сработало для меня, и я хотел поделиться.
Повеселись!
источники