PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : apache nicht von chkconfig unterstützt



JEG
31.03.06, 09:22
Hi!

Ich möchte meinen Apache 2.0.55 beim booten von Fedora Cora 4 automatisch starten.

Einiges an googlen hat mir zwar erstmal verraten was ein runlevel ist aber wie ich da einen Dienst eintrage wurde überall verschwiegen. Nun bin ich doch endlich auf chkconfig gestoßen.
Was mir dabei schon aufgefallen ist, gibt es eigentlich keine ordentliche Dokumentation für Fedora Linux?

Ich habe also mit ln -s einen Link zum apachectl script in init.d angelegt und wollte es mit chkconfig --add hinzufügen, allerdings bekomme ich die Meldung das der Dienst kein chkconfig unterstützt :(

Woran könnte das liegen? Was kann ich da noch tun?

marce
31.03.06, 09:32
zum Thema Doku:

http://fedora.redhat.com/docs/

ist eigentlich recht ausführlich - und es gibt noch einiges mehr...

JEG
31.03.06, 09:42
ja die doku hab ich auch gefunden, allerdings finde ich diese sehr unübersichtlich und für mein(e) problem(e) habe ich dort nichts hilfreiches finden können :(

MiGo
31.03.06, 11:21
Woran könnte das liegen? Was kann ich da noch tun?
Du koenntest verstehen, wie das Runlevelsystem[1] funktioniert :)
In /etc sollten sich Verzeichnisse mit den Namen rc<zahl>.d befinden (<zahl> steht fuer den runlevel, in dem die darin enthaltenen Dateien ausgefuehrt werden).
Darin sind Links nach /etc/init.d die folgenden Aufbau haben : S<zahl>dienstname.
Die werden (wenn sie mit "S" anfangen) in alphabetischer Reihenfolge beim Betreten des Runlevels ausgefuehrt.
Also solltest du /etc/init.d/apache nach /etc/rc5.d/S99apache verlinken (vorraussgesetzt, der Rechner laeuft standardmaessig im runlevel 5), dann wird der Indianer als einer der letzten Dienste im runlevel 5 gestartet.

edit: [1] gilt natuerlich nur fuer System V init :)

JEG
31.03.06, 11:44
Soweit war ich auch schon, hab auch im runlevel 0 noch einen link mit K gemacht.

Obs funktioniert kann ich leider im Moment nicht testen.

Allerdings taucht dann mein Apache immer noch nicht bei serviceconf auf und ich weis auch nicht was man bei den Nummern, also der Startreihenfolge beachten müsste.

Außerdem kommts mir so vor als wäre da noch irgendwas falsch, denn das Script ist das Standart Apache Script welches gerade eben bei System V Init funktionieren sollte.

fs111
31.03.06, 19:36
Es ist doch alles schon fertig da:

chkconfig httpd on

und fertig

fs111

JEG
05.04.06, 09:05
scherzkeks, wenn der dienst schon da wäre müsste ich ihn doch nicht erst eintragen :ugly:

MiGo
05.04.06, 10:37
Allerdings taucht dann mein Apache immer noch nicht bei serviceconf auf und ich weis auch nicht was man bei den Nummern, also der Startreihenfolge beachten müsste.

Naja, eigentlich muss apache nur nach dem netzwerk gestartet werden. Mit einem S99apache kannst du also nix verkehrt machen.
Zu serviceconf kann ich nix sagen, hab' ich nich. :)


Außerdem kommts mir so vor als wäre da noch irgendwas falsch, denn das Script ist das Standart Apache Script welches gerade eben bei System V Init funktionieren sollte.
Was bitteschoen soll 'kommts mir so vor als wäre da noch irgendwas falsch' heissen? Richtest du deine Rechner immer ausschliesslich per Intuition ein? *g*
Was meinst du mit "da" "irgendwas" und "falsch"? (Siehe meine Signatur).

Obs funktioniert kann ich leider im Moment nicht testen.
Dann teste es doch bitte erst, bevor du hier weitere Hilfe anforderst. Alles andere ergibt keinen Sinn.

JEG
10.04.06, 17:05
So ich habs getestet und meine Intuition war richtig, denn es hat nicht funktioniert.

Ich habe einen symbolischen link auf das Script in init.d abgelegt, darauf dann verwiesen aus rc3.d als S40http und auch aus rc0.d als K40http.

reboot und kein indianer in sicht :(

MiGo
11.04.06, 01:14
Ich habe einen symbolischen link auf das Script in init.d abgelegt, darauf dann verwiesen aus rc3.d als S40http u
Allerdings macht man es idR genau so.

apachectl script
Oehm, bei mir heisst das deutlich anders...
Eigentlich sollte auch bei der Installation schon ein Script namens apache oder apache2 in /etc/init.d landen....

fladi.at
11.04.06, 08:29
Wenn du den Apache2 aus den FC4-Rpms installierst (`yum install httpd`) dann landet automatisch ein passendes Startskript in /etc/init.d/httpd.

Der Grund, warum dein Ansatz eines Symlinks auf das apachectl als Startskript nicht geht kommt daher, dass chkconfig den Header der Startskripte auswertet um zu sehen, welche Aktion (S oder K) für jedes Runlevel zu setzen ist. apachectl hat jedoch keinen solchen Header, weshalb chkconfig auch nicht weis, was es damit tun soll.

So sieht z.b. der Header des Apache2 auf FC5 aus:



# httpd Startup script for the Apache HTTP Server
#
# chkconfig: - 85 15
# description: Apache is a World Wide Web server. It is used to serve \
# HTML files and CGI.
# processname: httpd
# config: /etc/httpd/conf/httpd.conf
# config: /etc/sysconfig/httpd
# pidfile: /var/run/httpd.pid


85 legt fest, dass die Symlinks für den Start des Apache mit S85 beginnen sollen, und zum Beenden mit K15. Somit wird Apache relativ spät im SysV-Init-Prozess gestartet, und ziemlich früh beendet.

Also, am besten mal den Apache per `yum` installieren.

JEG
12.04.06, 09:53
Hi fladi.at,

Vielen Dank für deine Hilfe! Ich habe die Zeilen dem apachectl Script hinzugefügt, die Pfade angepasst und jetzt läufts auch ohne Probleme :)

MfG

JEG

fladi.at
12.04.06, 10:11
Naja, du kannst den Header schon auch in das apachectl einfügen. Ich wollte mit meiner Antwort aber eher drauf hinaus, dass du besser das original RPM von Fedora nimmst. Sonst musst du bei jedem Update von Apache drauf achten, dass du den Header wieder manuell in das apachectl einfügst.