Определите, есть ли активный рабочий стол VNC и его номер

Когда SSH регистрируется на моем Linux-компьютере, как узнать, есть ли какой-либо сеанс отображения рабочего стола X-Windows (то есть:: 1, запущенный VNCServer), и каков его номер?

Причина :
Я иногда отдаленно запускаю сценарии iMacros FireFox, которым нужен графический интерфейс, поэтому, если нет рабочего стола, я должен включить его, выпустив:

vncserver -name Computer 

Если он запущен, зная его номер (т.е. :1.0 ), я делаю:

 export DISPLAY=:1.0 firefox imacros://run/?m=MyMacro.iim 

Я использую, чтобы попробовать:

 $ sudo ps -e | grep "vnc" -i 1685 ? 06:28:53 Xtightvnc 

Но это не дает мне число (т.е. :1.0 ).

Дополнительные данные по запросу (имеется работающий VNC: 1):

 $ sudo netstat -lnp|grep -i vnc tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 1685/Xtightvnc tcp 0 0 0.0.0.0:6001 0.0.0.0:* LISTEN 1685/Xtightvnc unix 2 [ ACC ] STREAM LISTENING 11847 1685/Xtightvnc /tmp/.X11-unix/X1 

One Solution collect form web for “Определите, есть ли активный рабочий стол VNC и его номер”

По умолчанию vnc использует порт 5901 для отображения 1 и так далее. Таким образом, вы можете использовать netstat, чтобы перечислить все процессы прослушивания и вычислить отображение:

 export DISPLAY="$(netstat -ln | awk '$4~/:59[0-9][0-9]$/{ v=$4; sub(/.*:/,"",v); print ":" v-5900; exit}')" 

Это предполагает, что ваш netstat выводит что-то вроде 0.0.0.0:5901 в поле 4. awk удаляет все до «:» и вычитает из него 5900. DISPLAY установлен в среде для следующего firefox. Если вы хотите объединить это с запуском vncserver, поместите его в функцию, скажем getdisplay, и используйте ее следующим образом:

 getdisplay(){ ... as above } getdisplay if [ -z "$DISPLAY" ] then vncserver -name Computer getdisplay fi firefox ... 
  • Невозможно получить доступ к другому серверу через локальную сеть в Digital Ocean
  • Почему установка внешнего жесткого диска вызывает событие UFW?
  • Самая эффективная технология блокировки Youtube на маршрутизаторах OpenWrt?
  • Interesting Posts

    Должен ли «#! / Usr / bin / env xdg-open» быть включен в файлы .desktop?

    Как именно люди «взломают» системы Unix / Linux?

    Использование sed для удаления строки из списка файлов не выполняется

    Связывание общей библиотеки в ядре linux

    Сканер Canon Pixma MG2450 поддерживается в Linux?

    Что такое адресное пространство пользователя и какова его цель?

    «Осталось ждать корневого устройства» с одним ядром, но не с другим

    Когда Debian переключится на Linux 4.x? (и поддерживать обновление ядра ядра?)

    Как копировать подмножество файлов из каталога, сохраняя структуру папок?

    У меня есть тысячи попыток пробить мою систему в этом журнале из журнала?

    Как избавиться от среды рабочего стола и использовать только оконный менеджер?

    Armbian: модуль dm-raid пропал

    Проверка совместимости основных загрузок и старых систем GNU / Linux

    все медиаконвертеры

    Как я могу использовать разные сеансы Emacs в разных окнах Emacs при использовании Emacs в режиме демона?

    Linux и Unix - лучшая ОС в мире.