PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : httpd/apache per script neu starten



hever
13.09.03, 14:54
Hallo zusammen,
ich würde gerne über ein PERL Script den Apache-Server neu starten, weil ich in die httpd.conf einen neuen virtuellen Host geschrieben habe. Immer wenn ein virtueller Host hinzugefügt wird, muss der Server natürlich neu gestartet werden, damit er auch verfügbar ist.

Im Script verwende ich folgenden Befehl (Script hat su-bit):
system("/usr/sbin/apachectl restart");

Folgender Fehler tritt auf:
/usr/sbin/apachectl restart: httpd not running, trying to start /usr/sbin/apachectl restart: httpd could not be started

Wie kann ich den httpd neu starten, oder kennt ihr eventuell andere möglichkeiten um einen gerade eingefügten virtuellen host verfügbar zu machen??

danke im vorraus
-hever-

Duck
13.09.03, 16:20
Hi,

du kannst den Apache/httpd auch anders restarten:

/etc/init.d/apache restart

bzw folgendermassen:
/etc/init.d/apache stop
/etc/init.d/apache start

alternativ kann es bei dir auch anstatt apache httpd heißen. Also demnach dann so:
/etc/init.d/httpd restart


Gruß Daniel

elevator
13.09.03, 16:39
Nach einem


killall -HUP httpd

kennt der Apache auch die geänderte Konfig. Wie man sieht führen mal wieder viele Wege zum Ziel :)

Gruß elevator

hever
13.09.03, 17:48
Hallo,
zunächst danke mal für eure Antwort.

Duck, folgender Befehl hat leider auch zu einem Fehler geführt...
/etc/init.d/httpd restart

Fehler:
Stopping httpd: [FAILED] Starting httpd:

/etc/init.d/httpd stop klappt leider auch nicht...

Und elevator, der Befehl
killall -HUP httpd

hat zwar zu keinem Fehler geführt aber leider nicht funktioniert, der virtuelle Host war danach leider immer noch nicht erreichbar.

SCHADE! Fällt euch vielleicht noch etwas anderes ein? Ein extra Script oder ein sudo ?

danke nochmal
-hever-

Svenny
13.09.03, 18:09
"apachectl graceful"

Doh!
13.09.03, 18:26
Na, ich würde mal in den Apache logs und in der /var/log/messages schauen, warum der Apache net startet. Ich nehme an, Du hast irgendwo einen Fehler in Deine Konfig eingebaut. Perl-Skript um den Apache starten brauchste net, das apachectl-Script ist ja dafür gerade gedacht.

Wenn ein Daemon seinen Dienst net antreten will, dann hat das auch einen Grund, den musst Du halt rausfinden.

Svenny
13.09.03, 21:55
das ist der vorteil von graceful gegenüber restart...

ist ein fehler in der config restartet er nicht bei graceful..

bei restart stoppt er komplett und versuch neu zu starten und da ein fehler drin ist streikt er dann....


--> apache.log

hever
14.09.03, 12:43
Hallo mal wieder,
ihr hattet recht, in meiner Konfiguration war tatsächlich ein Fehler. Hab ihn behoben, gibt jetzt keine Fehler mehr, aber trotzdem funktioniert es leider nicht.

Ich erhalte weiterhin folgende Fehler:
/usr/sbin/apachectl restart: httpd not running, trying to start /usr/sbin/apachectl restart: httpd could not be started

oder:
Stopping httpd: [FAILED] Starting httpd:

Aus der Fehlermeldung ist ja zu entnehmen, dass er garnicht erkennt, dass der apache läuft. "httpd not running". Aber er läuft auf jeden fall! Ich kann ihn also noch nicht mal stoppen. Wenn ich einen Fehler bekommen würde, keine Berechtigung, wäre dass ja ok. Hier mal eine Ausgabe von httpd - status aus dem Script:

httpd (pid 16613 14850 14844) is running...

Das verunsichert mich nun total...

mfg
-hever-

hever
14.09.03, 16:47
Es klappt noch nichtmal mit sudo...

Doh!
14.09.03, 16:51
Mach mal killall httpd und dann den start

hever
15.09.03, 16:33
Hej hej,
endlich kann ich mit "killall httpd" den Server herunterfahren. Aber leider kann ich ihn nicht mehr hochfahren. Ich denke mal weil er die nächste zeile im Script nicht mehr ausführt, weil der Servr runtergefahren ist, kann dass eventuell sein?

Ich habe versucht ein externes Script zu schreiben, welches ich dann aufrufen möchte. Script funktioniert auf Konsole. Wenn ich es mittels sudo ausführe funktioniert es leider nicht. Führe ich es normal aus dann kommt wieder der alte Fehler, apache würde nicht laufen..., bzw. der Server schaltet sich ab und startet nicht neu...

Weiß jemand rat um noch die letzte hürde zu meistern ?!

danke im Vorraus
-hever-

Doh!
15.09.03, 16:56
Original geschrieben von hever
Hej hej,
endlich kann ich mit "killall httpd" den Server herunterfahren. Aber leider kann ich ihn nicht mehr hochfahren. Ich denke mal weil er die nächste zeile im Script nicht mehr ausführt, weil der Servr runtergefahren ist, kann dass eventuell sein?

Ich habe versucht ein externes Script zu schreiben, welches ich dann aufrufen möchte. Script funktioniert auf Konsole. Wenn ich es mittels sudo ausführe funktioniert es leider nicht. Führe ich es normal aus dann kommt wieder der alte Fehler, apache würde nicht laufen..., bzw. der Server schaltet sich ab und startet nicht neu...

Weiß jemand rat um noch die letzte hürde zu meistern ?!

danke im Vorraus
-hever-

Lass das mit externen Scripten und Perl-Skript und dem ganzen kram. Es funktioniert alles wunderbar mit den mitgelieferten Skripten, Du musst es nur richtig machen. Läuft denn jetzt noch ein apache?

"ps aux | grep httpd" gibt auskunft

hever
15.09.03, 17:06
Hier ist die ausgabe:
root 10564 0.0 0.0 1700 596 pts/0 S 18:05 0:00 grep httpd

Apache läuft meiner meinung nach nicht mehr...

Problem ist ja nun auch dass starten...

Jinto
15.09.03, 18:08
mach mal: apachectl checkconfig

PS: schau doch auch ins error.log des Apache, dann brauchen wird nicht raten.

hever
15.09.03, 23:27
Hallo,
hier habe ich einmal meinen error-log gepostet:
[Tue Sep 16 00:21:59 2003] [notice] Apache/1.3.27 (Unix) (Red-Hat/Linux) mod_ssl/2.8.12 OpenSSL/0.9.6b DAV/1.0.3 PHP/4.1.2 mod_perl/1.26 configured -- resuming normal operations
[Tue Sep 16 00:21:59 2003] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Tue Sep 16 00:21:59 2003] [notice] Accept mutex: sysvsem (Default: sysvsem)

folgender Eintrag erscheint nach ausführen des Script zum herunterfahren:
[Tue Sep 16 00:22:33 2003] [notice] caught SIGTERM, shutting down

"apachectl checkconfig" << Wie bereits gesagt, die Konfigurationsdatei enthält keine Fehler...

Ich muss den Server jetzt nur noch irgendwie wieder hochfahren...
danke euch
-hever-

E S
16.09.03, 10:53
Hi,

ich tippe als root immer "rcapache " und dahinter das, was ich machen will ein. Also:

start, stop, restart, ... usw. ein.

ich bin nicht sicher, ob das so die feine Art ist, aber es funktioniert. Bei Samba und Squid verwendet man auch dieses rc.

Einen Versuch ist es wohl wert...

Gruß
Elmar