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

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

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

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

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

7 ответов

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

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

    #!/bin/sh
    
    xrdb $HOME/.Xresources
    xsetroot -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 INFO
    
    PATH="$PATH:/usr/X11R6/bin/"
    
    # The Username:Group that will run VNC
    export USER="mythtv"
    #${RUNAS}
    
    # The display that VNC will use
    DISPLAY="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-functions
    
    case "$1" in
    start)
    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
    ;;
    esac
    
    exit 0
    
  4. Сделайте скрипт исполняемым с sudo chmod +x /etc/init.d/vncserver,

  5. Наконец, подключитесь к вашему серверу с помощью клиента VNC через порт 590X, где X - это значение "DISPLAY" в сценарии vncserver. На OS X мне нравится использовать Цыпленок 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, и вам нужно будет создать файл службы /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-reload

sudo systemctl enable x11vnc.service

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

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

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

@reboot /usr/bin/vncserver :1

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

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

# <display>:<user>
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1920x1080"

VNCSERVERS="2:guest"
VNCSERVERARGS[2]="-geometry 800x600 -SecurityTypes None"

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

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

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

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

    #!/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
Другие вопросы по тегам