Benutzer-Werkzeuge

Webseiten-Werkzeuge


lxc-container_oeffnet_automatisch_den_vnc-port

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

lxc-container_oeffnet_automatisch_den_vnc-port [2016-04-12 22:50:02] – Externe Bearbeitung 127.0.0.1lxc-container_oeffnet_automatisch_den_vnc-port [2018-05-28 11:40:26] (aktuell) manfred
Zeile 1: Zeile 1:
 +====== LXC-Container öffnet automatisch den VNC-Port ======
 +
 +
 +===== automatischer Start des VNC-Servers beim Containerstart =====
 +
 +Hier fallen mir ganz spontan zwei verschiedene Möglichkeiten ein:
 +  - mit einem System-V - Start-/Stop-Sktipt
 +  - einfach über den Cron
 +
 +beide Varianten 
 +
 +
 +==== Start-/Stop-Sktipt ====
 +
 +
 +=== innerhalb des Containers ===
 +
 +Damit man sich zum starten des VNC-Servers nicht immer im Container einloggen muss,
 +sollte man sich ein Start-/Stop-Skript schreiben.
 +Dazu kann man zum Beispiel so vorgehen:
 +  # touch /etc/init.d/vncserver
 +  # chmod 0755 /etc/init.d/vncserver
 +  # vi /etc/init.d/vncserver
 +  # update-rc.d vncserver defaults 99 01
 +
 +
 +  # vi /etc/init.d/vncserver
 +  
 +  #! /bin/sh
 +  ### BEGIN INIT INFO
 +  # Provides:          vncserver
 +  # Required-Start:    $remote_fs $syslog $all
 +  # Required-Stop:
 +  # Default-Start:     2 3 4 5
 +  # Default-Stop:
 +  # Short-Description: Run vncserver
 +  ### END INIT INFO
 +  
 +  AUFLOESUNG="1152x864"
 +  VNCPORTOPT="1"
 +  VNCSTARTCMD="vncserver -geometry ${AUFLOESUNG} :${VNCPORTOPT}"
 +  VNCSTOPCMD="vncserver -kill :${VNCPORTOPT}"
 +  
 +  PATH=/sbin:/usr/sbin:/bin:/usr/bin
 +  
 +  . /lib/init/vars.sh
 +  . /lib/lsb/init-functions
 +  
 +  do_start() {
 +          log_begin_msg "Start ${VNCSTARTCMD}"
 +          ${VNCSTARTCMD}
 +          ES=$?
 +          log_end_msg $ES
 +          return $ES
 +  }
 +  
 +  do_stop() {
 +          log_begin_msg "Stop ${VNCSTOPCMD}"
 +          ${VNCSTOPCMD}
 +          ES=$?
 +          log_end_msg $ES
 +          return $ES
 +  }
 +  
 +  do_status() {
 +          VNCSTATUS="$(ps wx|fgrep -v grep|fgrep -v 'awk '|awk '/ Xvnc/{print $6}')"
 +          if [ -n "${VNCSTATUS}" ] ; then
 +                  echo "Laufende VNC-Prozesse: '${VNCSTATUS}'"
 +          else
 +                  echo "Es laufen keine VNC-Prozesse."
 +        fi
 +  }
 +  
 +  case "$1" in
 +      start)
 +        do_start
 +          ;;
 +      stop)
 +          do_stop
 +          ;;
 +      restart)
 +          do_stop
 +          sleep 1
 +          do_start
 +          ;;
 +      status)
 +          do_status
 +          ;;
 +      *)
 +          echo "Usage: $0 start|stop|restart|status" >&2
 +          exit 3
 +          ;;
 +  esac
 +
 +
 +==== Crontab ====
 +
 +
 +=== ausserhalb des Containers (vom Host-System aus) ===
 +
 +Wenn dieser Container nur den VNC-Prozess starten soll,
 +und man mit dem Container nicht weiter anstellen will,
 +dann genügt auch dieser "dirty hack":
 +  # echo "* * * * * root vncserver -geometry 1152x864 :1 > /dev/null 2>&1" >> /var/lib/lxc/ContainerName/rootfs/etc/crontab
 +
 +Hier wird der VNC-Server jede Minute einmal gestartet,
 +wenn er bereits läuft, dann gibt es nur eine Meldung,
 +die hier aber verworfen wird.
 +
 +...und mann spart sich das Start-/Stop-Sktipt.
 +