VNC-Server per Initscript starten: Unterschied zwischen den Versionen
Rolle (Diskussion | Beiträge) |
Rolle (Diskussion | Beiträge) |
||
Zeile 1: | Zeile 1: | ||
− | Nachfolgende Scripte von oc2pus (von mir leicht überarbeitet) (vielen Dank an denselben) ermöglichen es, einen VNC-Server für den Benutzer root automatisch in die Runlevel einzutragen. Leider geht es nicht so einfach per Copy & Paste, da dann wohl die Formatierung flöten geht. Damit nicht alle das Script einzeln abtippen müssen, habe ich das jetzt einmal gemacht und stelle es zum Download bereit unter http://rolandholder.funpic.de/scripte/vncserver.bz2 In der momentanen Ausführung startet das Script einen VNC-Server für root auf | + | Nachfolgende Scripte von oc2pus (von mir leicht überarbeitet) (vielen Dank an denselben) ermöglichen es, einen VNC-Server für den Benutzer root automatisch in die Runlevel einzutragen. Leider geht es nicht so einfach per Copy & Paste, da dann wohl die Formatierung flöten geht. Damit nicht alle das Script einzeln abtippen müssen, habe ich das jetzt einmal gemacht und stelle es zum Download bereit unter http://rolandholder.funpic.de/scripte/vncserver.bz2 In der momentanen Ausführung startet das Script einen VNC-Server für root auf Port 5901 bzw. Display 1. Das kann mit der Variablen 'FOO_ID' eingestellt werden. |
*Schreibe ein Startscript /etc/init.d/vncserver - ungefähr so: | *Schreibe ein Startscript /etc/init.d/vncserver - ungefähr so: |
Aktuelle Version vom 27. Dezember 2006, 22:17 Uhr
Nachfolgende Scripte von oc2pus (von mir leicht überarbeitet) (vielen Dank an denselben) ermöglichen es, einen VNC-Server für den Benutzer root automatisch in die Runlevel einzutragen. Leider geht es nicht so einfach per Copy & Paste, da dann wohl die Formatierung flöten geht. Damit nicht alle das Script einzeln abtippen müssen, habe ich das jetzt einmal gemacht und stelle es zum Download bereit unter http://rolandholder.funpic.de/scripte/vncserver.bz2 In der momentanen Ausführung startet das Script einen VNC-Server für root auf Port 5901 bzw. Display 1. Das kann mit der Variablen 'FOO_ID' eingestellt werden.
- Schreibe ein Startscript /etc/init.d/vncserver - ungefähr so:
#! /bin/sh # # Author: Toni # # /etc/init.d/vncserver this Script # /usr/sbin/rcvncserver Root-Link to this Script # /usr/X11R6/bin/vncserver Program # ### BEGIN INIT INFO # Provides: vncserver # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Description: Start vncserver for remote control # ### END INIT INFO #test -r /etc/rc.config && . /etc/rc.config export PATH=$PATH:/usr/X11R6/bin:/opt/kde3/bin # Check for missing binaries FOO_BIN=/usr/X11R6/bin/vncserver test -x $FOO_BIN || exit 5 # Set HOME of Root-User HOME="/root" export HOME USER="root" export USER # Set ID for Connections (Displaynumber) FOO_ID=1 # First reset status of this service . /etc/rc.status rc_reset # Return values acc. to LSB for all commands but status: # 0 - success # 1 - generic or unspecified error # 2 - invalid or excess argument(s) # 3 - unimplemented feature (e.g. "reload") # 4 - insufficient privilege # 5 - program is not installed # 6 - program is not configured # 7 - program is not running # case "$1" in start) echo -n "Starting vnc-Server with Terminal-ID $FOO_ID " # Delete old PIDs rm -f $HOME/.vnc/$HOSTNAME:$FOO_ID.pid 2> /dev/null rm -f /tmp/.X11-unix/X$FOO_ID 2> /dev/null if [ -e $HOME/.vnc/$HOSTNAME:$FOO_ID.log ]; then cat $HOME/.vnc/$HOSTNAME:$FOO_ID.log >> /var/log/vncserver.log 2>&1 rm -f $HOME/.vnc/$HOSTNAME:$FOO_ID.log fi # $FOO_BIN -depth 16 -name kde :$FOO_ID 2>&1 $FOO_BIN -depth 16 -name xfce :$FOO_ID 2>&1 rc_status -v6 ;; stop) echo -n "Shutting down vnc-Server " $FOO_BIN -kill :$FOO_ID 2>&1 cat $HOME/.vnc/$HOSTNAME:$FOO_ID.log >> /var/log/vncserver.log 2>&1 rm -f $HOME/.vnc/$HOSTNAME:$FOO_ID.log rc_status -v2 ;; restart) $0 stop $0 start rc_status ;; status) echo -n "Checking for service vnc-Server on Terminal-ID $FOO_ID: " ## Check status with checkproc(Cool, if process is running ## checkproc will return with exit status 0. # Return value is slightly different for the status command: # 0 - service running # 1 - service dead, but /var/run/ pid file exists # 2 - service dead, but /var/lock/ lock file exists # 3 - service not running # NOTE: checkproc returns LSB compliant status values. checkproc $FOO_BIN rc_status -v ;; *) echo "Usage: $0 {start|stop|status|restart}" exit 1 ;; esac rc_exit
Im Verzeichnis /usr/sbin solltest du noch einen link auf dieses script anlegen:
- cd /usr/sbin
- ln -s /etc/init.d/vncserver rcvncserver
Damit kannst Du mit 'rcvncserver start' den Server starten mit 'rcvncserver stop' den VNC-Server stoppen
- Aktiviere dieses script via yast Runleveleditor für die runlevel 3 5
oder mit dem Befehl insserv vncserver
- Im Verzeichnis '/root/.vnc' musst du die xstartup Datei anpassen:
#!/bin/sh export LANG="de_DE" case "$VNCDESKTOP" in kde) startkde & ;; xfce) startxfce4 & ;; *) xrdb $HOME/.Xresources xsetroot -solid grey xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & twm & ;; esac
Je nachdem ob du KDE oder xfce als Windowmanager einsetzen willst. Analog können auch andere Windowmanager eingetragen werden.
- Jetzt solltest du mit dem vncviewer mit dem Befehl 'vncviewer <servername>:1' zum Server verbinden können.
Display 1 mit dem XFCE. Das Script kann natürlich auch relativ einfach für andere Nutzerinnen oder andere Displays und Windowmanager umgeschrieben werden. Erfolgreich getestet habe ich es auf OpenSuSE 10.
Bei SuSE 10.2 hat sich der Pfad zum vncserver geändert. Statt
/usr/X11R6/bin/vncserver
lautet der Pfad jetzt
/usr/bin/vncserver
Rolle