Werbehinweise

Startseite » Software » Linux » dnet-Client Start-/Stoppscript 

Werbung

dnet-Client Start-/Stoppscript

Hinweis: Im Oktober 2012 wurde ich darüber informiert das mein seit etlichen Jahren auf dieser Seite veröffentlichte Script nicht (mehr) funktionieren würde. Ich habe den Fehler gesucht und die Änderung auf einer neuen Seite in meinem Blog[1] beschrieben. Da aber noch immer viele Forenbeiträge auf diese Seite führen, habe ich den alten Inhalt unverändert beibehalten.

Die neue Version ist über den Link in der Fußnote auf dieser Seite zu erreichen.


Eigentlich ist das folgende Script keine große Sache und bevor man es sich im Web gesucht hat, hat man es schneller und leichter selbst geschrieben. Dennoch gebe ich aus zwei Gründen hier eine kleine Anleitung zum automatischen Starten und Beenden des Distributed-Net-Clients an – natürlich mit dem dazugehörigen Shellscript.

Zunächst einfach mal das Script:

#! /bin/bash
#
# dnetcpath => path to dnetc binarys
#

dnetcpath=/home/foo/dnetc


case "CONTENT" in
  start)
    echo -n "Starting dnetc client: "
    $dnetcpath/dnetc -hide
    ;;

  stop)
    echo -n "Stopping dnetc client: "
    $dnetcpath/dnetc -shutdown
    ;;

  flush)
    echo -n "flushing data: "
    $dnetcpath/dnetc -flush
    ;;
  *)
    echo -n "Usage: dnetc [start|stop|flush]"
esac

Für die Angabe des Pfades zu den Client-Binarys wird eine Variable verwendet. Das Beispiel würde voraussetzen, das sich die Binarys im Verzeichnis /home/foo/dnetc befinden. Wo man die aktuellen Binary herbekommt? Beispielsweise hier. Welche Binarys man nehmen muß, sollte man schon selbst wissen. Für die meisten Linux-Systeme mit ix86-Prozessoren wäre es das Archiv dnetc-linux-x86-elf.tar.gz.

Nun aber zurück zum Script. Die Funktion sollte eigentlich ersichtlich sein. Mit den Parametern »start«, »stop« und »flush« werden die entsprechenden Parameter an den Client weitergegeben.

Das Script muß in ein Verzeichnis gespeichert werden, welches sich in der Umgebungsvariablen PATH befindet. Da es sich um ein selbstgeschriebenes Script handelt, schlage ich das Verzeichnis /usr/bin vor. Ich habe dem Script den Dateinamen dnetc gegeben.

Das Script muß ausführbar sein, daher muß man – sofern noch nicht geschehen – die Rechte dementsprechend setzen: chmod 755 /usr/bin/dnetc.

Nun sollte das Script eigentlich aufgerufen werden können. Zuvor aus dem /usr/bin-Verzeichnis in ein anderes Wechseln und dann an der Konsole dnetc eingeben. Es sollte folgende Ausgabe erscheinen:

Usage: dnetc [start|stop|flush]


Das Script wird also gefunden und kann ausgeführt werden. Somit steht die Option flush permanent zur Verfügung. Für das automatische Starten/Beenden des Clients hat es allerdings keine Relevanz.

Man hätte das Script auch nach /etc/init.d legen können, dort befinden sich andere Scripte, welche beim Wechsel der Runlevel ausgeführt werden. Allerdings ist das Script dann nicht ohne Angabe des kompletten Pfades zu erreichen.

Nun zu den Runleveln. Wie gerade schon erwähnt, werden Scripte bei Wechseln von Runleveln ausgeführt. Für das dnetc-Script waren bei mir drei Runlevel zu beachten: Level 0 (halt), Level 2 (standard Runlevel nach dem Systemstart) und Level 6 (reboot).

Daher werden in den entsprechenden Verzeichnissen Symlinks angelegt:

ln -s /usr/bin/dnetc /etc/rc0.d/K99dnetc (beendet Client im Level 0)
ln -s /usr/bin/dnetc /etc/rc6.d/K99dnetc (beendet Client im Level 6)
ln -s /usr/bin/dnetc /etc/rc2.d/S99dnetc (startet Client im Level 2)

Jetzt sollte der Client beim Herunterfahren bzw. Rebooten beendet, und beim Systemstart bzw. Wechseln ins Runlevel 2 gestartet werden.


Datenschutzerklärung
Durch die Nutzung der Website stimmen Sie der Verwendung von Cookies zur Durch­führung von Analysen und zum Erstellen von Inhalten und Werbung, welche an Ihre Interessen angepasst ist, zu.