====== 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.