Еще раз о VNC. Автоматический запуск сервера

Ниже было описано, как установить и настроить сервер VNC. Теперь поговорим о том, как его запускать автоматически при загрузке системы.

Причина, по которой данная информация вынесена в отдельную статью, заключается в том, что данный способ можно использовать для запуска любых фоновых задач. Достаточно будет минимальных знаний, чтобы изменить предложенный скрипт для загрузки и останова других программ.

Создаем загрузочный файл

Первое, что нам понадобится — загрузочный файл (скрипт). Можно создавать его с помощью удаленного доступа SSH (с использованием программы PuTTY), как было описано в предыдущей статье, а можно сделать все перечисленное непосредственно с консоли Raspberry Pi.

Введите следующую команду:

sudo nano /etc/init.d/tightvncserver

Замечание: Nano это простой и быстрый редактор текстовых файлов. Команда создаст новый файл, названный tightvncserver в каталоге /etc/init.d и откроет его на редактирование в редакторе Nano (обратите внимание на надпись New File внизу окна):

Теперь введите или скопируйте следующий текст программы:

# В этой строке укажите пользователя, под которым запускается VNC-сервер. Пользователь по умолчанию - pi
export USER='pi'

eval cd ~$USER

# Проверяем параметр команды - start или stop
case "$1" in
  start)
    # Если параметр - start, то запускаем сервер
    su $USER -c '/usr/bin/vncserver :1 -geometry 1280x800 -depth 16 -pixelformat rgb565'
    echo "Starting vncserver for $USER "
    ;;
  stop)
    # Если параметр stop, то останавливаем сервер
    pkill Xtightvnc
    echo "vncserver stopped"
    ;;
  *)
    echo "Usage: /etc/init.d/vncserver {start|stop}"
    exit 1
    ;;
esac
exit 0

# Доп. информация http://myraspberrypiexperience.blogspot.co.uk

Замечание: в тексте скрипта указан параметр размера рабочего стола VNC — 1280×800. Его можно изменить под свои нужды.

Для выхода из nano нажмите Ctrl-X. Затем последует вопрос о необходимости сохранения файла — ответьте Y. И, наконец, подтвердите имя файла нажатием клавиши Enter.

Устанавливаем правильные атрибуты файла

Теперь, после создания загрузочного файла, необходимо установить правильные атрибуты, т.е. сделать файл исполняемым. Для этого, введите команду:

sudo chmod 755 /etc/init.d/tightvncserver

Обратите внимание, что эту операцию необходимо повторять всякий раз, когда вы изменяете файл. Если не установить правильные атрибуты файла, то сервер VNC не загрузится.

Добавляем файл в список автозагрузки

Для того, чтобы сделать это, выполните команду:

sudo update-rc.d tightvncserver defaults

На этом все шаги выполнены и остается только перезагрузить Raspberry Pi!

Оригинал статьи находится по адресу http://myraspberrypiexperience.blogspot.com/2012/08/start-vnc-automatically.html.

Еще раз о VNC. Автоматический запуск сервера: 9 комментариев

  1. Я решил эту проблему несколько иначе, добавив команду запуска в /etc/rc.local и изменив пользователя в файле настроек vncserver.
    Не уверен, что я сделал все верно, с точки зрения опытных линуксоводов, но система работает исправно.
    Думаю, что сделаю все по «феншую» как написано в данной статье.

    Есть вопрос по использованию VNC. Нельзя ли, например, запустив через VNC видео или браузер, видеть происходящее не в VNC у себя на ноутбуке, а на дисплее, подключенном к RPi?

    • Самый простой способ управлять удаленно Raspberry Pi и видеть результат на дисплее, на мой взгляд, это свободный проект Synergy (http://synergy-foss.org/ru/)
      Если коротко, то нужно скачать и установить сервер Synergy себе на ноутбук, затем на Raspberry Pi выполнить команду «sudo apt-get install synergy», а затем «/usr/bin/synergyc —daemon YOUR_SERVER_IP» (с IP адресом своего ноутбука). Все это можно сделать через SSH удаленно.
      После этого, перемещая мышь на ноутбуке в правую часть экрана, вы попадаете на экран Raspberry Pi.

      • Благодарю за наводку
        Попробую

      • Оказалось не все так просто, хотя как пишите вы и как написано тут http://harizanov.com/2012/10/remote-keyboard-and-mouse-for-raspberry-pi/, все должно работать
        У меня server Win7 x64 а client соответственно на RPi
        Гугление навело на скачку какого-то нестандартного дистрибутива synergy. Пока не пробовал этот способ.

        • А что конкретно не заработало? Проблема в Windows или в RPi?

          • Установилось все корректно и на Windows и на RPi.
            Но выполнение команды в RPi ни к чему не приводит. В логах Windows «waiting for clients».
            Может server на Windows требуется как-то сконфигурировать не по дефолту?

            • Возможно мешает брандмауэр в Windows. Я специально попробовал, это была единственная проблема. Если, после запуска клиента на Raspberry Pi в окне сервера на Windows нет запросов, то это проблема брандмауэра. Synergy не добавляет себя в исключения автоматически, как это делают многие программы.

            • Да, так возможно даже лучше, но этот способ сложнее

Обсуждение закрыто.