Як запустити сервер VNC під час завантаження?


29

Як створити загальносистемний файл автозапуску? Це було б на хмарному сервері, де працює настільна версія Maverick.

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

Я скопіював файл .desktop автозапуск від /root/.config/autostartдо /etc/xdg/autostartі перезавантажується. Це, схоже, не мало значення.

Редагувати Як було сказано в коментарі, мета - запустити мій скрипт bash, який запускає сервер VNC після завантаження; не за логіном.


Ви маєте на увазі автозапуск під час завантаження або автозапуск, коли хтось (хтось) входить у систему?
fossfreedom

Я хочу, щоб сервер VNC автозапустився під час завантаження.
H2ONaCl

1
Я знайшов відповідь на SU SE superuser.com/questions/147109/…, спробуйте
wisemonkey

Чи не потрібен VNC для запуску дисплея?
десгуа

Відповіді:


19
  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 чудово працює.

Джерело


Цей superuser.com/questions/147109/… від wisemonkey є рівнозначною відповіддю. Це працює. Зверніть увагу, шлях до X11 може потребувати коригування.
H2ONaCl

TigerVNC встановлює, /etc/init.d/vncserverякий запускає всі налаштовані сервери vncservers/etc/sysconfig/vncservers
Кашяп

5
Це було скопійовано з abdevelopment.ca/blog/start-vnc-server-ubuntu-boot , але це ЛИШЕ НАЙГОЛОШИШИЙ КРОКsudo update-rc.d vncserver defaults
Хай Фан

3

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

Це нормально для вашої мети, доки ви не змінюєте рівні виконання, я думаю. (Якщо ви не знаєте, що таке бігові рівні, не забудьте).


2
Ця пропозиція не спрацювала для мене.
H2ONaCl

Ці 2 налаштування можуть допомогти.
Cees Timmerman

@CeesTimmerman, дякую, але ці 2 налаштування не спрацювали.
H2ONaCl

2

Якщо ви використовуєте TigerVNC, то він встановлює, /etc/init.d/vncserverякий запускає всі vncservers, налаштовані в /etc/sysconfig/vncservers Ng. Нижче, запускає 2 екземпляри на дисплеї 1 і 2 при запуску.

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

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

2

це здається старим дописом, але тема може бути все ще цікавою для деяких користувачів. Щоб мати 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 (див. Тут ) або спробувати скористатися цією швидкою програмою.

Сподіваюся, це корисно


1

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

@reboot /usr/bin/vncserver :1

Щоб відкрити файл crontab, потрібно скористатися командою crontab -e


Це ж відповідь на цю 6-річну відповідь: askubuntu.com/a/124079/158442
muru

0

Ви можете мати стартові речі для вас під час завантаження. Просто використовуйте рядок "@reboot" замість цифр, які ви зазвичай використовуєте, щоб вказати, коли річ повинна працювати.

Наприклад, ось як запустити Dropbox на машині, на якій він інакше не запускається автоматично:

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

На цій сторінці написано, що працює лише в тому випадку, якщо система фактично перезавантажується (без холодного завантаження).
Cees Timmerman

0

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

    #!/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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.