it-swarm.dev

Jak spustím VNC Server při spuštění?

Jak vytvořím systémový soubor automatického spuštění? To by bylo na cloudovém serveru se spuštěnou stolní verzí Mavericku.

Přihlásil jsem se jako root a vytvořil jsem soubor autostart pomocí System/Preferences/StartupApplications ale skončilo to /root/.config/autostart a po restartu nevykonal (pokud mohu říci). Soubor autostart má vyvolat bash skript, který vyvolá server VNC.

Zkopíroval jsem soubor automatického spuštění .desktop z /root/.config/autostart to /etc/xdg/autostart a restartován. Nezdalo se, že by to změnilo.

pravit Jak je uvedeno v komentáři, cílem je spustit můj bash skript, který spustí bootovací server VNC; ne při přihlášení.

29
H2ONaCl
  1. Nejprve nainstalujte server TightVNC Sudo apt-get install tightvncserver.

  2. Nastavte server VNC pro uživatele, kterého chcete přihlásit. Při prvním spuštění programu „vncserver“ se zobrazí výzva k nastavení hesla. povolit pouze připojení SSH tunelem nebo VPN. Chcete-li spustit programy nebo relaci při spuštění vaší relace VNC, upravte ~/.vnc/xstartup. Zde je příklad.

    #!/bin/sh
    
    xrdb $HOME/.Xresources
    xsetroot -solid black
    /opt/azureus/azureus &
    k3b &
    icewm-session &
    
  3. Zkopírujte následující do /etc/init.d/vncserver. Nejjednodušší způsob, jak to udělat, je zkopírovat do schránky, spustit Sudo -i && cat > /etc/init.d/vncserver && exit do terminálu, vložte jej a zadejte CTRL-D. Nezapomeňte změnit proměnnou USER na libovolného uživatele, pod kterým chcete spustit server 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. Vytvořte spustitelný skript pomocí Sudo chmod +x /etc/init.d/vncserver.

  5. Nakonec se připojte k serveru pomocí klienta VNC na portu 590X, kde X je hodnota „DISPLAY“ ve skriptu vncserver. V OS X ráda používám Chicken of the VNC. V systémech Windows a Linux klient TightVNC funguje dobře.

Zdroj

19
maniat1k

Jedna možnost: /etc/rc.local

Obsah říká:

# 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

Realizační bity jsou v mém systému již nastaveny na 755. (chmod 755 /etc/rc.local)

Můžete do něj vložit jakýkoli příkaz, který bude proveden jako root.

To je v pořádku pro váš účel, pokud to neměníte. (Pokud nevíte, co jsou runlevely, nikdy nevadí).

3
Tobias

zdá se, že jde o starý příspěvek, ale téma může být pro některé uživatele stále zajímavé. Abyste mohli vnc spustit při startu, musíte

  1. nainstalovat serverový software vnc (zde budeme používat x11vnc)
  2. nakonfigurovat spouštěcí skript (používá se ke spuštění služby vnc)

Krok 1 - nainstalujte server x11vnc

z příkazového řádku zadejte

 Sudo apt-get install x11vnc

Chcete-li přidat zabezpečení, měli byste nastavit pwd

Sudo x11vnc -storepasswd

Krok 2 - Nakonfigurujte spouštěcí skript

  • pokud je vaše verze Ubuntu nižší 15.04,

vytvoříte konfigurační soubor pod /etc/init.d/x11vnc.conf a naplňte jej správnými příkazy, které mají být provedeny

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
  • je-li vaše verze Ubuntu 15.04 nebo novější,

tyto systémy používají systemd a budete si muset vytvořit soubor své servisní jednotky pod /lib/systemd/system/x11vnc.service a naplňte jej správnými příkazy, které mají být provedeny

[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

Znovu načtěte službu

Sudo systemctl daemon-reload

Sudo systemctl enable x11vnc.service

Podrobné informace najdete na wiki stránce Nápověda Ubuntu Community (viz zde ), nebo můžete zkusit použít tuto rychle použitelnou receptu

Doufám, že je to užitečné

2
Griffon

Pokud používáte TigerVNC, nainstaluje /etc/init.d/vncserver které spustí všechny vncservery nakonfigurované v /etc/sysconfig/vncservers E.g. následující by spustilo 2 instance na displeji 1 a 2 při spuštění.

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

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

Přidejte do řádku crontab tento řádek. To znamená příkaz za klíčovým slovem @reboot se spustí během velmi restartu.

@reboot /usr/bin/vncserver :1

Chcete-li otevřít soubor crontab, musíte použít příkaz crontab -e

1
rashok

'Sudo update-rc.d vncserver výchozí' hlásil, že tam chyběly; "Povinné zastavení:" (i prázdné). Takže jsem to přidal jako níže. A žádné další varování.

    #!/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
Paulsk

Můžete mít cron start věci pro vás v době spuštění. Stačí použít řetězec „@reboot“ místo čísel, která normálně používáte, abyste určili, kdy se má věc spustit.

Zde je příklad, jak spustím Dropbox na počítači, na kterém se jinak automaticky nespustí:

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