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

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

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

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

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

28
задан 17 April 2012 в 18:18

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. Обязательно измените Пользовательскую переменную на любого пользователя, под которым Вы хотите, чтобы сервер 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 значение "ДИСПЛЕЯ" в vncserver сценарии. На OS X мне нравится использовать Курицу VNC. В Windows и Linux, клиент TightVNC работает приятно.

Источник

19
ответ дан 17 April 2012 в 18:18

Одна возможность: /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.

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

0
ответ дан 17 April 2012 в 18:18

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

    #!/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
0
ответ дан 17 April 2012 в 18:18

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

@reboot /usr/bin/vncserver :1

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

0
ответ дан 17 April 2012 в 18:18

При использовании 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"
2
ответ дан 17 April 2012 в 18:18

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

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

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

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

 sudo apt-get install x11vnc

Для добавления безопасности необходимо установить pwd

sudo x11vnc -storepasswd

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

  • если Ваша версия человечности ниже 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
  • если Ваша версия человечности 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 страница Wiki (см. здесь), или можно попытаться использовать это быстрое для использования recipice

Надежда это полезно

2
ответ дан 17 April 2012 в 18:18

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

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

# m h  dom mon dow   command
@reboot         /usr/bin/dropbox start
0
ответ дан 17 April 2012 в 18:18

Другие вопросы по тегам:

Похожие вопросы: