У меня Raspberry Pi 2, и я следил за публикацией на Raspberrypi.org, но Tight VNC Server не запускается при перезагрузке. Там, кажется, нет никакой ошибки.
Как заставить TightVncServer запускаться при перезагрузке Pi?
У меня Raspberry Pi 2, и я следил за публикацией на Raspberrypi.org, но Tight VNC Server не запускается при перезагрузке. Там, кажется, нет никакой ошибки.
Как заставить TightVncServer запускаться при перезагрузке Pi?
Ответы:
Для этого вы можете использовать немного ловкости Linux.
Нашей первой задачей будет редактирование файла /etc/rc.local. Этот файл может содержать команды, которые запускаются при запуске. Если мы посмотрим на файл, то увидим, что там уже мало записей;
#!/bin/sh -e
#
# 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.
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
exit 0
Первый набор строк с хеш-знаком (#) перед ними - комментарии. Это просто чтобы объяснить, что происходит с кем-то, кто читает файл.
Строки кода внизу явно связаны с IP-адресом компьютера. На самом деле это короткий скрипт, который проверяет, есть ли у Raspberry Pi IP-адрес, и если он есть, он распечатывает его. Если вы помните, вы можете увидеть IP-адрес, распечатанный на экране, когда Pi загружается так
My IP address is 10.1.1.8
Raspbian GNU/Linux 7 raspberrypi tty1
raspberrypi login:
Этот фрагмент скрипта в rc.local является кодом, отвечающим за распечатку IP-адреса!
Мы добавим следующую команду в rc.local;
su - pi -c '/usr/bin/tightvncserver :1'
Эта команда переключает пользователя на пользователя 'pi' с su - pi. Су означает «смена пользователя», тире (-) гарантирует, что среда пользователя Пи (как и все их настройки) используется правильно, а ПИ - пользователь.
Опция -c объявляет, что следующая часть строки будет командой, которая будет выполняться, а часть внутри кавычек ('/ usr / bin /лотvncserver: 1') является командой.
В этом случае команда запускает файлightvncserver, который находится в каталоге / usr / bin, и указывает, что мы должны запустить сеанс рабочего стола 1 (: 1).
Для этого мы отредактируем файл rc.local с помощью следующей команды;
sudo nano /etc/rc.local
Добавьте в наши строки, чтобы файл выглядел следующим образом;
#!/bin/sh -e
#
# 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.
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
# Start tightvncserver
su - pi -c '/usr/bin/tightvncserver :1'
exit 0
(Мы также можем добавить наш собственный комментарий в файл, чтобы будущие читатели знали, что происходит)
Это должно быть так. Теперь вы сможете проверить, что служба запускается при загрузке Pi при перезагрузке.
Если вышесказанное звучит немного затянуто, не стесняйтесь проверить более полную аргументацию здесь .
Перед началом убедитесь, что ваш Pi подключен к интернету \ сети через Ethernet \ wifi.
Откройте Терминал и введите следующие команды:
Получить Pi IP-адрес для удаленного подключения (для использования позже)
hostname -I
Установить TightVncServer
sudo apt-get update
sudo apt-get install tightvncserver
tightvncserver
При первом запуске вы должны ввести пароль и подтвердить его. Нет необходимости вводить пароль только для просмотра.
Чтобы настроить автоматический запуск в качестве службы при загрузке Pi:
Откройте nano (текстовый редактор), чтобы создать файл для автоматического запуска Tight VNC Server sudo nano /etc/init.d/tightvncserver
Введите следующее (или скопируйте и вставьте ):
#!/bin/sh
# /etc/init.d/tightvncserver
# Set the VNCUSER variable to the name of the user to start tightvncserver under
VNCUSER='pi'
case "$1" in
start)
su $VNCUSER -c '/usr/bin/tightvncserver :1'
echo "Starting TightVNC server for $VNCUSER"
;;
stop)
pkill Xtightvnc
echo "Tightvncserver stopped"
;;
*)
echo "Usage: /etc/init.d/tightvncserver {start|stop}"
exit 1
;;
esac
exit 0
Нажмите Ctrl + x, затем y, чтобы сохранить, и Enter, чтобы сохранить то же имя файла.
Отредактируйте разрешения этого файла, чтобы сделать его исполняемым и активным:
sudo chmod 755 /etc/init.d/tightvncserver
sudo update-rc.d tightvncserver defaults
Перезагрузка для проверки перезагрузки sudo
Установите клиент vnc для вашей ОС и попробуйте подключиться после перезагрузки Pi!
Для Windows: клиент TightVNC, например . Нет необходимости устанавливать сервер.
Запустите VNC Client Connect, используя IP-адрес в верхней части этого поста. Измените IP-адрес на ваш. Номер порта в ряде интернет-сообщений указан только в виде 2 цифр. Это короткая рука, и если вы используете вышеописанный скрипт, ваш pi работает на порту 1, то вы должны использовать 590 1 . Если 2, то 590 2 и т. Д.
192.168.1.123:5901
vncserver -geometry 1366x768 -depth 24 -dpi 96
Я использовал эту команду раньше, чтобы получить полноэкранный режим. Есть ли способ добавить строку в ваш код?)
su $VNCUSER -c '/usr/bin/tightvncserver :1'
- это то, что запускает команду, на которую вы ссылаетесь. Просто добавьте параметры в конец этой строки, что приведет к чему-то вродеsu $VNCUSER -c '/usr/bin/tightvncserver :1' -geometry 1366x768 -depth 24 -dpi 96