usługa httpd restart / (98) Adres już używany

11

Niespodziewanie nie mogę ponownie uruchomić apache na moim serwerze internetowym CentOS 6.8:

# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:7080
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:7080
no listening sockets available, shutting down
Unable to open logs
                                                           [FAILED]

Próbowałem wielu rzeczy, które czytam online, w tym usuwania plików blokady.

Postanowiłem spróbować zrestartować serwer. Po ponownym uruchomieniu, próba załadowania hostowanych witryn spowoduje „502 Bad Gateway”.

# service httpd status
httpd is stopped

# service httpd start
Starting httpd:                                            [  OK  ]

# service httpd status
httpd dead but subsys locked

Mimo „martwego” stanu mogę teraz ładować strony internetowe!

Czasami usługa httpd restart działa ...

# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

Ale innym razem powoduje pierwszy błąd powyżej. W takim przypadku mogę to naprawić za pomocą:

# killall -9 httpd
# service httpd start

Więc mogę to obejść, ale naprawdę jestem ciekawa, co się dzieje i zastanawiam się, czy nie powinienem się tym przejmować.

stevland
źródło
Czy twój system plików jest pełny? I: kiedy pojawia się błąd, uruchom netstat -tulpeni poszukaj czegoś nasłuchującego na porcie 7080. Uruchamiasz tylko apache, prawda? Port 7080 to nie pomyłka?
Lenniey,
tcp 0 0 :::7080 :::* LISTEN 0 5626801 3829/httpd
stevland,

Odpowiedzi:

12

Być może gdzieś w twoich konfiguracjach zdefiniowałeś swój słuchacz na tym porcie dwa razy.

Posłuchaj *: 7080

Jeśli uruchomisz test konfiguracji Apache, powiesz, że konfiguracja jest OK, dopóki faktycznie nie zrestartujesz usługi, zakończy się ona błędem podobnym do tego, co widzisz.

Sprawdź także, czy istnieje miejsce rejestrowania, możliwość zapisu i zapisania, czy wiadomość na końcu jest podejrzana.

Jeff W.
źródło
9

SSH do serwera i uruchom następujące czynności:

setenforce 0

Spowoduje to wyłączenie selinux do następnego uruchomienia

Następnie spróbuj ponownie załadować Apache

service httpd restart

Jeśli to zadziała, jakoś włączono selinux.

Aby trwale wyłączyć, kliknij ten link:

https://kb.plesk.com/en/115626

Anthony Fornito
źródło
Chociaż uwielbiam proste odpowiedzi, niestety nie zadziałało. :(
stevland
Czy możesz uruchomić te polecenia, aby zobaczyć, co używa jakich portów? Dodaj dane wyjściowe do pytania lub pastebin. "netstat -ano | grep 80" "netstat -ano | grep 7080" "cat / etc / services | grep -w 80" "cat / etc / services | grep -w 7080" "nmap localhost | grep 80" "nmap localhost | grep 80 "" nmap localhost "
Anthony Fornito,