atari-home.de - Foren
Software => Alternative Betriebssysteme => Thema gestartet von: Heinz Schmidt am Mi 04.01.2012, 23:50:56
-
Hallo zusammen,
mit welchen Einträgen / Dateien binde ich einen Dienst sauber unter Mint (EsayMint) in das System ein?
Wenn ich das richtig verstehe, trge ich den entsprechenden Dienst in die /etc/sysconfig/add.services (oder net.services, std.services) ein. Ist das schon alles? Oder brauche ich dann unter /etc/init.d noch z.B. einen link auf das entsprechende binary?
Hintergrund:
Ich habe mit einigen Teilen aus Mint 98 unter EasyMint das Drucken mit NVDI über's Netzwerk eingerichtet. Dazu muss ich u.a. lpd starten. Natürlich könnte ich das einfach aus der mint.cnf machen ... schön ist das aber nicht.
Gruß Heinz
P.S. Sobald ich das sauber im EasyMint am laufen habe, schreibe ich endlich eine Doku dazu :-)
-
Moin,
Du hast's erfasst, genau so funzt es :)
- Binary in /etc/init.d kopieren oder darin einen Link setzen
- Dienst in /etc/sysconfig/*.services eintragen
Latz
-
Hallo,
- Binary in /etc/init.d kopieren oder darin einen Link setzen
- Dienst in /etc/sysconfig/*.services eintragen
Das habe ich jetzt genau so gemacht aber leider startet lpd nicht automatisch. Ich denke unter MiNT 98 funktioniert es wie oben beschrieben.
Ich vermute aber, das unter EasyMint eine neuere Version von init verwendet wird, so das ich im entsprechenden rc*.d Verzeichnis noch einen Link setzen muss.
Mit welchem Runlevel startet MiNT eigentlich, wenn ich es "normal" zum login prompt boote? Leider gibt es ja kein runlevel Kommando ...
Was ich bei der rc*.d Struktur auch noch nicht verstanden habe ist, wann ein Link S##<servicename> und wann K##<servicename> genannt wird. Bei den Vergebenen Zahlen nehme ich an, das sie die Startreihenfolge angeben und ich z.B. nach dem syslog deamon meinen lpd starten könnte.
Gruß Heinz
-
Stopp!
Ich vermute aber, das unter EasyMint eine neuere Version von init verwendet wird, so das ich im entsprechenden rc*.d Verzeichnis noch einen Link setzen muss.
Das ist Quatsch!
Ich habe nur den Eintrag in der /etc/sysconfig/std.services falsch gemacht.
Unter MiNT98 sieht das so aus:
lpd /usr/lib/lpd
Und unter EasyMint gehört einfach nur folgendes in die *.services Datei:
lpd
Das bedeutet natürlich auch, das /usr/lib im Pfad aufgenommen werden muss, oder alternativ ein entsprechnder Link in einem Verzeichnis, das im Pfad ist (z.B. /bin), gesetzt werden muss.
Ich habe mich dafür entschieden /usr/lib in den Pfad aufzunehmen. Jetzt startet lpd auch schön beim Hochfahren. Jetzt kommt noch der Start von lpspool in die mint.cnf und fertig ist der Lack :-)
Gruß Heinz
-
Achso, jetzt verstehe ich auch warum man nicht direkt xaaes in der mint.cnf startet (mache ich eigentlich immer so), sondern init - oder kann man init auch irgendwie anders starten - ausser ueber die mint.cnf?
-
Hallo m0n0,
ob xaaes so ein gutes Beispiel ist für einen (Hintergrund)-Dienst? ich lasse Mint am liebsten zum Textlogin hochlaufen und starte dann xaaes (oder n.aes) per commando. Damit habe ich zumindest ein laufendes MiNT mit shell, falls XAAES mal wieder zickig ist.
... oder kann man init auch irgendwie anders starten - ausser ueber die mint.cnf?
Eigentlich kannst Du init "beliebig" starten, also auch aus der shell. Kannst ja mal in der bash init eingeben ... :-)
Nur ist das nicht wirklich sinnvoll. Beim Systemstart initialisiert es die für den runlevel konfigurierten Dienste. Unter MiNT (zumindest EasyMiNT) sind aber alle runlevel gleich konfiguriert, so das Du mit init außer beim Start praktisch wenig anfangen kannst. Theoretisch könntest Du aber verschiedene runlevel konfigurieren und mit init <runlevel> die jeweilige Konfiguration starten.
Die üblichen runlevel sind bei wikipedia ganz gut beschrieben (http://en.wikipedia.org/wiki/Runlevel).
Gruß Heinz
-
Hallo zusammen,
Jetzt kommt noch der Start von lpspool in die mint.cnf und fertig ist der Lack :-)
Das habe ich mir ja wieder sehr schön einfach vorgestellt. Ich dachte mit einer netten Zeile ist das erledigt - z.B.
exec "/usr/etc/lpspool >> /var/log/lpspool.log 2>&1"
Das geht leider nicht! Offenbar kann man beim exec statement nur einen einfachen Pfad zu einem Kommando ohne Parameter eingeben.
Folglich brauchte ich für den Start von lpspool ein kleines shell script. Ein simpler Einzeiler war mir dann doch zu doof, weil mit einem brauchbaren script für start, stop und status die typischen Funktionen für einen Dienst recht leicht umzusetzen waren.
Also habe ich nach Jahren mal wieder ein wenig Shell-Scripting geübt und folgendes Script erstellt.
#!/bin/bash
#
# Simple lpspool control script for start/stop/status
#
# revision 0.03 - Heinz Schmidt - initial version
#
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin; export PATH
BINARY=/usr/etc/lpspool
LOGFILE=/var/log/lpspool.log
PIDFILE=/var/run/lpspool.pid
case $1 in
start
if [ -f $BINARY ]; then
echo "Starting lpspool ..."
date >> $LOGFILE
$BINARY >> $LOGFILE 2>&1 &
echo "lpspool pid: " $! >> $LOGFILE
echo $! > $PIDFILE
else
echo "Error: program" $BINARY "not found!"
fi
;;
stop)
if [ -f $PIDFILE ]; then
read pid < $PIDFILE
echo "Stopping lpspool (pid:" $pid")"
kill $pid
rm $PIDFILE
else
echo "lpspool is not running"
fi
;;
status)
if [ -f $PIDFILE ]; then
read pid < $PIDFILE
echo "Status: lpspool is running (pid: " $pid")"
else
echo "lpspool is not running"
fi
;;
*)
echo "Usage: lpspool start|stop|status" ;;
esac
Damit läßt sich nun lpspool recht gut steuern und statt aus der mint.cnf kann ich es auch z.B. aus der std.services starten und über die bash steuern.
Gar nicht so doof, was? Wenn ich nun noch meine lpd/lpr Konfig (http://forum.atari-home.de/index.php?topic=9113.0) ordentlich hinbekomme, kann ich endlich richtig Drucken über's Netz ...
Das Script-schreiben hat so viel Spaß gemacht ... da könnte ich mich glatt dafür begeistern ein Installations-Script für den ganzen lp*-Kram zu basteln.
Gruß Heinz
-
ob xaaes so ein gutes Beispiel ist für einen (Hintergrund)-Dienst? ich lasse Mint am liebsten zum Textlogin hochlaufen und starte dann xaaes (oder n.aes) per commando. Damit habe ich zumindest ein laufendes MiNT mit shell, falls XAAES mal wieder zickig ist.
Nein, xaaes ist kein Hintergrunddienst - wird aber bei easymint von init gestartet - oder net? Deshalb ist es doch so problematisch mint / xaaes zu aktualisieren wenn man easymint nutzt - weil init nicht ersetzt wird und immer noch das alte xaaes starten will....
-
Hallo m0n0,
Nein, xaaes ist kein Hintergrunddienst - wird aber bei easymint von init gestartet - oder net? Deshalb ist es doch so problematisch mint / xaaes zu aktualisieren wenn man easymint nutzt - weil init nicht ersetzt wird und immer noch das alte xaaes starten will....
Ja, ich glaube da hast Du recht. Wenn man es bei der Installation entsprechend angibt, startet EasyMint Xaaes und verwendet den expliziten Pfad. Ersetzt man dann Mint z.B. durch 1-17-cur stimmt und vergisst den Xaaes Pfad zu ändern, dann hat man den Salat. Das ist einer der Grüde, warumich lieber nur bis zum console login boot und dann das AES manuell starte ;-)
Gruß Heinz