Porównaj ceny domen i usług IT, sprzedawców z całego świata

Apache jest uruchomiony; jednak informuje, że tak się nie dzieje i nie uruchamia się ponownie


Apache jest uruchomiony; jednak informuje, że tak nie jest i nie uruchamia się ponownie.
#/etc/init.d/httpd status
httpd.worker is stopped#/usr/sbin/lsof -iTCP:80
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
httpd.wor 1169 root 3u IPv6 2974 TCP *:http (LISTEN)
httpd.wor 1211 daemon 3u IPv6 2974 TCP *:http (LISTEN)
httpd.wor 1213 daemon 3u IPv6 2974 TCP *:http (LISTEN)
httpd.wor 1215 daemon 3u IPv6 2974 TCP *:http (LISTEN)
httpd.wor 1352 daemon 3u IPv6 2974 TCP *:http (LISTEN)#/etc/init.d/httpd restart
Stopping httpd: [FAILED]
Starting httpd: [Wed Mar 24 10:33:51 2010] [warn] module proxy_ajp_module is already loaded, skipping
(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
[FAILED]

System operacyjny: Linux DISTRO: CENTOS 5

Ani ponowne uruchomienie serwera, ani zabicie apache i uruchomienie go nie pomogło.
Jakieś pomysły, co powoduje tę niespójność?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Zazwyczaj
         init.d
skrypty wykorzystują na przykład pliki do przechowywania identyfikatorów PID uruchomionych demonów
/var/run/httpd.pid
lub coś podobnego. Może się zdarzyć, że albo skrypt przechowuje zły PID, albo nieaktualny PID, albo występuje problem z uprawnieniami i skrypt nie może w pierwszej kolejności utworzyć pliku.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Zakładam, że masz nieaktualny plik PID z poprzedniego uruchomienia Apache. Nie mam dostępu do systemu CentOS, ale na moim komputerze z Fedorą 11 ten plik znajduje się pod adresem/var/run/httpd/httpd.pid - możesz sprawdzić swoją lokalizację, wyszukując „pidfile” w/etc/init .d/httpd (zakładam, że używasz wersji Apache zainstalowanej z RPM; jeśli nie i masz apache w/usr/local/apache2 lub podobnym, plik PID znajduje się w/usr/local/apache2/logs) .
Zatrzymaj Apache, usuń nieaktualny plik PID, a następnie uruchom ponownie i powinno być dobrze.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Plik init.d jest zwykle skryptem powłoki - prawdopodobnie wywołuje
         apachectl
aby rozpocząć i zatrzymać proces. Sprawdź, jakie polecenie wysyła, aby zatrzymać proces, i zobacz, co się stanie, jeśli spróbujesz uruchomić dowolne polecenie, którego używa, bezpośrednio bez pliku init.d.
Jeśli to nadal nie zadziała, sprawdź dzienniki błędów serwera internetowego, aby zobaczyć, czy jest coś przydatnego.
W celu debugowania możesz również spróbować wysłać za pomocą
         apachectl graceful
polecenie - przeładuje konfigurację i zrestartuje procesy potomne bez zatrzymywania procesu głównego. (problem polega na tym, że oznacza to, że jest kilka zmian w konfiguracji, które nie przyniosą efektu, ale jeśli nie wykonasz poprawek, prawdopodobnie nie będzie to miało znaczenia)
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Zakładam, że masz dwa różne skrypty inicjujące uruchamiające Apache, a różne skrypty inicjujące używają różnych plików pid.
Co się stanie, jeśli to zrobisz
         killall -9 httpd
a następnie uruchom Apache przez
/etc/init.d/httpd start
?

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się