VNC Sunucusunu açılışta nasıl başlatırım?


29

Sistem çapında bir otomatik başlatma dosyası nasıl oluştururum? Bu Maverick'in masaüstü sürümünü çalıştıran bir bulut sunucusunda olacaktı.

Root olarak giriş yaptım ve kullanarak bir autostart dosyası yarattım, System/Preferences/StartupApplicationsancak bitti /root/.config/autostartve yeniden başlattıktan sonra (söyleyebildiğim kadarıyla) çalışmadı. Autostart dosyası, VNC sunucusunu çağıran bir bash betiğini çağırmak içindir.

Ben gelen .desktop autostart dosyasını kopyaladığınız /root/.config/autostartiçin /etc/xdg/autostartve yeniden. Bu bir fark yaratmadı.

Düzenleme Bir yorumda belirtildiği gibi, VNC sunucusunu önyükleme sırasında başlatan bash betiğimi çalıştırmak; giriş yaptıktan sonra değil.


Birisi (herhangi biri) oturum açtığında açılışta otomatik başlatma veya otomatik başlatma anlamına mı geliyorsunuz?
fossfreedom

VNC sunucusunun açılışta otomatik olarak başlatılmasını istiyorum.
H2ONaCl

1
SU SE superuser.com/questions/147109/… adresinde bir cevap buldum
wisemonkey

VNC'nin çalışması için ekran gerektirmiyor mu?
desgua

Yanıtlar:


19
  1. İlk önce, TightVNC sunucusunu kurun sudo apt-get install tightvncserver.

  2. VNC sunucusunu, giriş yapmak istediğiniz kullanıcı için ayarlayın. "Vncserver" ı ilk defa çalıştırdığınızda, sizden bir şifre belirlemenizi isteyecek. sadece SSH tünelli veya VPN bağlantılarına izin ver. VNC oturumunuz başladığında programları veya bir oturumu başlatmak için değiştirin ~/.vnc/xstartup. İşte bir örnek.

    #!/bin/sh
    
    xrdb $HOME/.Xresources
    xsetroot -solid black
    /opt/azureus/azureus &
    k3b &
    icewm-session &
    
  3. Aşağıdakileri kopyalayın /etc/init.d/vncserver. Bunu yapmanın en kolay yolu, onu panonuza kopyalamak sudo -i && cat > /etc/init.d/vncserver && exit, bir terminalde çalıştırmak , yapıştırmak ve CTRL-D yazmaktır. KULLANICI değişkenini VNC sunucusunun çalışmasını istediğiniz kullanıcı olarak değiştirdiğinizden emin olun.

    #!/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. Komut dosyasını çalıştırılabilir duruma getirin sudo chmod +x /etc/init.d/vncserver.

  5. Son olarak, sunucunuza 590X bağlantı noktasındaki VNC istemcisiyle bağlanın; burada X, vncserver komut dosyasındaki "DISPLAY" değeridir. OS X'te, VNC'nin Tavuğunu kullanmayı seviyorum. Windows ve Linux'ta, TightVNC istemcisi iyi çalışıyor.

Kaynak


Bu superuser.com/questions/147109/… , wisemonkey'den gelen stackexchange eşdeğeri cevabıdır. İşe yarıyor. X11 yolunun ayarlanması gerekebileceğini unutmayın.
H2ONaCl

TigerVNC, /etc/init.d/vncserveryapılandırılan tüm vncserver'ları başlatan kurulumlar/etc/sysconfig/vncservers
Kashyap

5
Bu, abdevelopment.ca/blog/start-vnc-server-ubuntu-boot adresinden kopyalanarak yapıştırıldı , fakat ÇOK ÖNEMLİ ADIMINIZDAN SONRAsudo update-rc.d vncserver defaults
Hai Phan

3

Bir olasılık: /etc/rc.local

İçerik diyor ki:

# 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

Yürütme bitleri zaten sistemimde 755 olarak ayarlanmış (chmod 755 / etc / rc.local)

Buraya kök olarak çalıştırılacak herhangi bir komutu koyabilirsiniz.

Sanırım, çalışma seviyelerini değiştirmediğiniz sürece amacınız için sorun yok. (Eğer çalışma seviyelerinin ne olduğunu bilmiyorsanız, boşuna).


2
Bu öneri benim için işe yaramadı.
H2ONaCl

Bu 2 tweaks yardımcı olabilir.
Cees Timmerman

@CeesTimmerman, teşekkür ederim ama bu 2 tweaks işe yaramadı.
H2ONaCl

2

TigerVNC kullanıyorsanız /etc/init.d/vncserver, /etc/sysconfig/vncservers aşağıdaki gibi yapılandırılan tüm vncservers'ı başlatan kurulumlar başlar ve başlangıçta 1 ve 2 numaralı ekranda 2 örnek başlar.

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

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

2

Bu eski bir gönderi gibi görünüyor, ancak konu bazı kullanıcılar için hala ilginç olabilir. VNC'nin açılışta başlaması için, yapmanız gerekenler

  1. Bir vnc sunucu yazılımı kurun (burada x11vnc kullanacağız)
  2. bir başlangıç ​​betiği yapılandırın (vnc hizmetini başlatmak için kullanılır)

Adım 1 - x11vnc sunucusunu kurun

komut satırından yazın

 sudo apt-get install x11vnc

Güvenlik eklemek için bir pwd ayarlamanız gerekir.

sudo x11vnc -storepasswd

Adım 2 - Başlangıç ​​komut dosyanızı yapılandırın

  • Ubuntu versiyonunuz 15.04 daha düşükse,

config dosyasını altında oluşturup /etc/init.d/x11vnc.confçalıştırılacak doğru komutlarla dolduruyorsunuz.

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 sürümünüz 15.04 veya üstü ise,

bu sistemler systemd kullanıyor ve servis birimi dosyanızı altında oluşturmanız /lib/systemd/system/x11vnc.service ve doğru komutlarla doldurmanız gerekiyor.

[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

Hizmeti yeniden yükle

sudo systemctl daemon-reload

sudo systemctl enable x11vnc.service

Yardım Ubuntu Topluluğu wiki sayfasında detaylı bilgi bulabilir ( buraya bakın ) veya tarifleri kullanmak için bu hızlı girişi kullanmayı deneyebilirsiniz.

  • 15.04'ten daha düşük Ubuntu sürümleri için bu yazıyı kontrol edin
  • 15.04 veya daha sonraki sürümlerde Ubuntu için bu yazıyı kontrol edin

Umarım bu yardımcı olur


1

Aşağıdaki satırı crontab dosyasına ekleyin. Bu, anahtar kelime @rebootçok önyükleme sırasında yürütüldükten sonraki komut anlamına gelir .

@reboot /usr/bin/vncserver :1

Crontab dosyasını açmak için komutu kullanmanız gerekir. crontab -e


Bu 6 yıllık cevabın aynısı
muru

0

Açılış zamanında sizin için cron başlangıç ​​şeyleri olabilir. Yalnızca "@reboot" dizesini, normalde işin ne zaman çalışması gerektiğini belirtmek için kullandığınız sayıların yerine kullanın.

Örneğin, burada başka şekilde otomatik olarak başlamadığı bir makinede Dropbox'ı başlatıyorum:

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

Bu sayfa , yalnızca sistem gerçekten yeniden başlatıldığında (soğuk başlatma yok) çalıştığını söylüyor.
Cees Timmerman

0

'sudo update-rc.d vncserver default)' eksik olduğunu bildirdi; "Zorunlu-Durma:" (hatta boş). Bu yüzden aşağıdaki gibi ekledi. Ve daha fazla uyarı yok.

    #!/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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.