30.
Oktober
2012
Per E-Mail wurde ich darauf hingewiesen, dass mein altes Start-/Stoppscript[1] für den distributed.net Client nicht mehr funktionieren würde.
Eigentlich war der Verfasser der E-Mail nur auf der Suche nach einem Beispiel für ein Script mit dem er bestimmte Aufrufe beim Starten beziehungsweise Beenden seines Rechners mit Ubuntu ausführen lassen kann.
Ich hatte das Script schon länger nicht mehr im Einsatz. Was sich verändert hat: Die Übergabe der Variablen beim Aufruf. Diese liegt nicht mehr in »CONTENT« sondern in »CONTENT«. Daher ist das Script entsprechend anzupassen.
Weil es mehr Sinn macht den kompletten Ablauf darzustellen, beschreibe ich erneut den vollständigen Ablauf inklusive dem Einrichten von symbolischen Links (Symlinks), welche dann beim Starten beziehungsweise Beenden des Betriebssystems das Script aufrufen.
Zunächst muss die Datei mit dem Script in /usr/bin
angelegt werden. Da ich den distributed.net Client starten will und dieser mit dnetc
aufgerufen wird, kenne ich das Script ebenfalls dnetc
. Ich öffne es einfach als neue Datei mit vim
. Damit ich in /usr/bin
schreiben kann, darf natürlich ein sudo
vor dem Aufruf nicht fehlen:
sudo vim /usr/bin/dnetc
Anschließend muss das Script in die Datei eingefügt werden. Wer mit der Maus arbeitet und vim
an der Konsole geöffnet hat, kann einfach per Markieren und einem Klick auf die mittlere Maustaste das Script einfügen:
#!/bin/bash
#
# dnetcpath => path to dnetc binarys
#
dnetcpath=/foo/bar/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
Danach die Datei einfach per ESC gefolgt von der Eingabe /wq
und Enter speichern und schließen.
Damit das Script auch ausgeführt werden kann müssen noch die Rechte angepasst werden:
sudo chmod 755 /usr/bin/dnetc
Abschließend müssen nur noch die entsprechenden Einträge in den jeweiligen Runlevels erfolgen. Beim Ausschalten oder Neustart soll das Script den Client beenden. Wenn das Runlevel 2 erreicht wird, soll das Script den Client starten. Die entsprechenden Symlinks werden mit den folgenden Aufrufen gesetzt:
sudo ln -s /usr/bin/dnetc /etc/rc0.d/K99dnetc
sudo ln -s /usr/bin/dnetc /etc/rc6.d/K99dnetc
sudo ln -s /usr/bin/dnetc /etc/rc2.d/S99dnetc
Nach einem Neustart sollte der distributed.net Client nun wie gewünscht im Hintergrund laufen. Sofern natürlich der richtige Pfad zum Client im Script angegeben wurde.
Statt /foo/bar/dnetc
wird es bei den meisten wohl eher wie /home/tux/dnetc
aussehen.
X_FISH