Как мне запустить VNC-сервер при загрузке?

Как мне создать общесистемный файл автозапуска? Это будет происходить на облачном сервере, на котором работает настольная версия Maverick.

Я вошел в систему как root и создал файл автозапуска с помощью System/Preferences/StartupApplications но все закончилось тем, что в /root/.config/autostart и не выполнялся (насколько я могу судить) при перезагрузке. Файл автозапуска предназначен для вызова сценария bash, который вызывает сервер VNC.

Я скопировал файл автозапуска .desktop из /root/.config/autostart к /etc/xdg/autostart и перезагрузился. Казалось, это ничего не меняло.

Редактировать Как упоминалось в комментарии, цель состоит в том, чтобы запустить мой скрипт bash, который запускает сервер VNC при загрузке, а не при входе в систему.

  1. Сначала установите сервер TightVNC sudo apt-get install tightvncserver.

  2. Настройте сервер VNC для пользователя, от имени которого вы хотите войти в систему. Когда вы запустите "vncserver" в первый раз, он попросит вас установить пароль. разрешайте только туннелированные SSH-соединения или VPN-соединения. Чтобы запускать программы или сеанс при запуске сеанса VNC, измените ~/.vnc/xstartup. Вот пример.

    #!/bin/shxrdb $HOME/.Xresourcesxsetroot -solid black/opt/azureus/azureus &k3b &icewm-session &
  3. Скопируйте следующее в /etc/init.d/vncserver. Самый простой способ сделать это - скопировать его в буфер обмена, запустить sudo -i && cat > /etc/init.d/vncserver && exit в терминале вставьте его и введите CTRL-D. Обязательно измените переменную USER на любого пользователя, под которым вы хотите, чтобы сервер VNC запускался.

    #!/bin/sh -e### BEGIN INIT INFO# Provides:          vncserver# Required-Start:    networking# Default-Start:     3 4 5# Default-Stop:      0 6### END INIT INFOPATH="$PATH:/usr/X11R6/bin/"# The Username:Group that will run VNCexport USER="mythtv"#${RUNAS}# The display that VNC will useDISPLAY="1"# Color depth (between 8 and 32)DEPTH="16"# The Desktop geometry to use.#GEOMETRY="<WIDTH>x<HEIGHT>"#GEOMETRY="800x600"GEOMETRY="1024x768"#GEOMETRY="1280x1024"# The name that the VNC Desktop will have.NAME="my-vnc-server"OPTIONS="-name ${NAME} -depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}". /lib/lsb/init-functionscase "$1" instart)log_action_begin_msg "Starting vncserver for user '${USER}' on   localhost:${DISPLAY}"su ${USER} -c "/usr/bin/vncserver ${OPTIONS}";;stop)log_action_begin_msg "Stoping vncserver for user '${USER}' on localhost:${DISPLAY}"su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}";;restart)$0 stop$0 start;;esacexit 0
  4. Сделайте скрипт исполняемым с помощью sudo chmod +x /etc/init.d/vncserver.

  5. Наконец, подключитесь к своему серверу с помощью VNC-клиента на порту 590X, где X - значение "DISPLAY" в скрипте vncserver. В OS X мне нравится использовать Chicken из VNC. В Windows и Linux клиент TightVNC работает хорошо.

Источник

Одна из возможностей: /etc/rc.local

Содержание говорит об этом:

# This script is executed at the end of each multiuser runlevel.# Make sure that the script will "exit 0" on success or any other# value on error.## In order to enable or disable this script just change the execution# bits. ## By default this script does nothing

Биты выполнения в моей системе уже установлены на 755. (chmod 755 /etc/rc.local)

Вы можете поместить туда любую команду, которая будет выполняться от имени root.

Я думаю, это нормально для вашей цели, если вы не меняете уровни выполнения. (Если вы не знаете, что такое уровни выполнения, неважно).

кажется, это старый пост, но тема все еще может быть интересна некоторым пользователям. Чтобы vnc запускался при загрузке, вам нужно будет

  1. установите программное обеспечение сервера vnc (здесь мы будем использовать x11vnc)
  2. настройка сценария запуска (используется для запуска службы vnc)

Шаг 1 - установите сервер x11vnc

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

 sudo apt-get install x11vnc

Чтобы повысить безопасность, вы должны установить pwd

sudo x11vnc -storepasswd

Шаг 2 - Настройте свой сценарий запуска

  • если ваша версия ubuntu ниже 15.04,

вы создаете конфигурационный файл в разделе /etc/init.d/x11vnc.conf и заполните его правильными командами, которые должны быть выполнены

start on login-session-start  script  /usr/bin/x11vnc -xkb -auth/var/run/lightdm/root/:0-noxrecord -noxfixes -noxdamage -rfbauth /etc/x11vnc.pass -forever -bg -rfbport 5900 -o /var/log/x11vnc.log  end script
  • если ваша версия ubuntu 15.04 или более поздняя,

эти системы используют systemd, и вам нужно будет создать свой файл service unit в разделе /lib/systemd/system/x11vnc.service и заполните его правильными командами, которые должны быть выполнены

[Unit] Description=Start x11vnc at startup. After=multi-user.target[Service] Type=simple ExecStart=/usr/bin/x11vnc -auth guess -forever-loop -noxdamage -repeat -rfbauth /home/USERNAME/.vnc/passwd -rfbport 5900 -shared[Install] WantedBy=multi-user.target

Перезагрузите службу

sudo systemctl daemon-reloadsudo systemctl enable x11vnc.service

Вы можете найти подробную информацию на вики-странице Help Ubuntu Community (см. здесь) или вы можете попробовать использовать этот быстрый в использовании рецепт.

  • Для версии Ubuntu ниже 15,04, проверьте этот пост
  • Для версии Ubuntu 15.04 или более поздняя версия, проверьте этот пост

Надеюсь, это будет полезно

Если вы используете TigerVNC, то он устанавливается /etc/init.d/vncserver который запускает все серверы vnc, настроенные в /etc/sysconfig/vncserversНапример, следующее приведет к запуску 2 экземпляров на дисплее 1 и 2 при запуске.

# <display>:<user>VNCSERVERS="1:root"VNCSERVERARGS[1]="-geometry 1920x1080"VNCSERVERS="2:guest"VNCSERVERARGS[2]="-geometry 800x600 -SecurityTypes None"

Добавьте нижеприведенную строку в файл crontab. Это означает команду после ключевого слова @reboot выполняется во время самой перезагрузки.

@reboot /usr/bin/vncserver :1

Чтобы открыть файл crontab, необходимо использовать команду crontab -e

'sudo update-rc.d vncserver defaults' сообщил, что отсутствует; "Требуется-Stop:" (даже пустой). Поэтому я добавил его, как показано ниже. И больше никаких предупреждений.

    #!/bin/sh -e    ### BEGIN INIT INFO    # Provides:          vncserver    # Required-Start:    networking    # Required-Stop:         # Default-Start:     3 4 5    # Default-Stop:      0 6    ### END INIT INFO

Вы можете запустить cron для вас во время загрузки. Просто используйте строку "@reboot" вместо чисел, которые вы обычно используете, чтобы указать, когда программа должна запуститься.

Например, вот как я запускаю Dropbox на компьютере, на котором в противном случае он не запускается автоматически:

# m h  dom mon dow   command@reboot         /usr/bin/dropbox start

Я нашел ответ в SU SE ubuntu - Automatically start VNC server on startup - Super User дайте ему попробовать

вы имеете в виду автозапуск при загрузке или автозапуск, когда кто-то (кто угодно) входит в систему?

Я хочу, чтобы сервер VNC автоматически запускался при загрузке.

Разве VNC не требует отображения для запуска?