Kirjoittaja Aihe: Apache2 ei käynnisty bootin yhteydessä [ratkaistu - tavallaan]  (Luettu 5729 kertaa)

Sami Lehtinen

  • Käyttäjä
  • Viestejä: 754
  • Techie
    • Profiili
    • Sami Lehtinen
UbuntuForums: Ubuntu 11.10 Apache2 service start fails.

Apache2 ei siis käynnisty bootin yhteydessä, ei sitten millään. Palveluna se toimii mainiosti ja olen katsonut rc init scriptit läpi, kaikki ok. Sekä vielä varmistanut bom:illa, että ne on oikein jos olen itse kämmännyt jotain.

Päivityksen jälkeen muutama hakemisto piti luoda, ennen kuin apache käynnistyi. Mutta nyt se toimii täydellisesti, poislukien se ikävä fakta, ettei se käynnisty bootin jälkeen.

Mitään pro-tippiä, mistä pitäisi ruveta katsomaan? Logeista en löytänyt mitään olennaista vikaa ja palveluna se toimii. Joten nykyisellä Ubuntu Server admin kokemuksella olen ikävä kyllä aika hukassa tämän asian debuggaamisen kanssa. Tietysti jos jollain on suora ratkaisu aina parempi.

Katsoin myös läpi apache2:n bugilistan ja ubuntuforumssin, ettei kenelläkään muulla näyttäisi olevan samanlaista ongelmaa.

 - Kiitos
« Viimeksi muokattu: 24.10.11 - klo:21.14 kirjoittanut Sami Lehtinen »

mrl586

  • Käyttäjä
  • Viestejä: 4638
    • Profiili
Vs: Apache2 ei käynnisty bootin yhteydessä
« Vastaus #1 : 18.10.11 - klo:21.45 »
Millainen ympäristö kyseessä? Fyysinen vai virtuaali? Onko uusi asennus vai päivitys?

Sami Lehtinen

  • Käyttäjä
  • Viestejä: 754
  • Techie
    • Profiili
    • Sami Lehtinen
Vs: Apache2 ei käynnisty bootin yhteydessä
« Vastaus #2 : 18.10.11 - klo:21.57 »
Millainen ympäristö kyseessä? Fyysinen vai virtuaali? Onko uusi asennus vai päivitys?

Hyviä kysymyksiä.
1) Virtuaali (OpenVZ), vanha asennus 11.04 päivitetty -> 11.10 jonka jälkeen ongelma alkoi.
2) Käytössä on mpm worker version Apache2:sta, Python3 ja PHP (molemmat toistaiseksi CGI:nä). SSL on aktivoituna. Kaikki ihan perus konfigreilla. uWSGI jutut on kesken.
3) Logrotate on käytössä, logit paipitettu sen kautta Apachesta.

Todellakin niin perussettiä kun olla ja voi. Ubuntu pavelin kokemuksen puutteen vuoksi analysointi on kovin hankalaa. Mutta ainakin mitä nopeasti #ubuntu channulla kyselin, niin katsottiin joku 5 yleisintä mokaa ja yhdestäkään niistä ei ollut kyse. Epäilivät kovasti jonkin sortin bugia, joskin mua epäilyttää se ettei kukaan muu olisi sitä tähän mennessä raportoinut. LAMP kun lienee kuitenkin aikalailla laajassa käytössä myös Ubuntu distrona. Ehkä tuo OpenVZ on tässä se jekku, se voisi olla syy jos packaget ei ole täysin yhteensopivia sittenkään alustan kanssa joka hostissa pyörii. Kaikki muu tätä yhtä ongelmaa lukuunottamatta toimii kyllä moitteitta.  mm. mysql, sendmail, postfix, sqlite3, screen, irssi, nano, mitä nyt on tullut päivityksen jälkeen testattua.

Edit openvz / package asiaan liittyen uname & apache2 infot:

Koodia: [Valitse]
Linux s 2.6.32-042stab036.6 #1 SMP Tue Sep 13 19:37:36 MSD 2011 x86_64 x86_64 x86_64 GNU/Linux

Server version: Apache/2.2.20 (Ubuntu)
Server built:   Sep  6 2011 18:40:05

No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 11.10
Release: 11.10
Codename: oneiric
« Viimeksi muokattu: 18.10.11 - klo:22.01 kirjoittanut Sami Lehtinen »

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Vs: Apache2 ei käynnisty bootin yhteydessä
« Vastaus #3 : 19.10.11 - klo:09.39 »
Saattaa liittyä "upstart" asiaan. Ubuntu on muuttanut asioita pois vanhan käynnistysmekanismin puolelta upstartin puolelle, käsitykseni mukaan osa on käynnistynyt sieltä ja osa täältä mikä on ollut hieman hämäävää.

http://upstart.ubuntu.com/

En ehdi heti tutkimaan tuota tarkemmin, kerro jos selvisi.

Tuossa myös samasta asiasta:

http://fi.wikipedia.org/wiki/Init
« Viimeksi muokattu: 19.10.11 - klo:09.46 kirjoittanut ajaaskel »
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

juyli

  • Vieras
Vs: Apache2 ei käynnisty bootin yhteydessä
« Vastaus #4 : 19.10.11 - klo:13.35 »
Apache2 ei siis käynnisty bootin yhteydessä, ei sitten millään.

Purkkaa (ennenkuin ongelma ratkeaa): voisiko tuon palvelun käynnistäminen tapahtua rc.local -tiedostosta.
http://linux.fi/wiki/Rc.local

Sami Lehtinen

  • Käyttäjä
  • Viestejä: 754
  • Techie
    • Profiili
    • Sami Lehtinen
Vs: Apache2 ei käynnisty bootin yhteydessä
« Vastaus #5 : 21.10.11 - klo:20.24 »
Saattaa liittyä "upstart" asiaan. Ubuntu on muuttanut asioita pois vanhan käynnistysmekanismin puolelta upstartin puolelle, käsitykseni mukaan osa on käynnistynyt sieltä ja osa täältä mikä on ollut hieman hämäävää.

Siihen se liittyy mitä ilmeisimmin. Olen testannut vaikka mitä vielä ja nyt on käynyt selväksi että edes init.d hakemistossa olevaa apache2 scriptiä ei ajeta, vaikka rc2.d hakemistossa on rivi
Koodia: [Valitse]
lrwxrwxrwx  1 root root   17 Oct 20 16:16 S91apache2 -> ../init.d/apache2 Musta toi on 100% oikein ja pitäisi käynnistää apache.

Laitoin vielä lisä analyysin vuoksi tonne apache2 init scriptiin komennon /bin/date > /tmp/apache2-start eikä tuota tiedostoa synny bootissa. Eli koko scriptiä ei edes yritetä suorittaa. Jos taas annan bootin jälkeen apachectl start komennon, apache käynnistyy ja tmp file päivittyy.

Purkkaa (ennenkuin ongelma ratkeaa): voisiko tuon palvelun käynnistäminen tapahtua rc.local -tiedostosta.
http://linux.fi/wiki/Rc.local

Purkka on ihan jees ajoittain. Btw. chmod a+x rc.local, done. /usr/sbin/apachectl start lisätty fileeseen. Ei auttanut, lisätty tuota apache2:n init.d scriptiä vastaava date-komento fileeseen. Arvaas mitä. Sitäkään ei suoriteta bootissa. Että näin.

Olen myös poistanut plymouthd roskat startista, mutta joka kerta kun boottaan koneen niin eikös siellä prosesseissa roiku pidillä 33 plymothd joka on muuten täysin turha serverillä. (En kyllä tajua miksi se on edes laitettu starttiin.)

Mutta näin. Tutkimukset jatkuu. Nyt asennan uudelleen apache2:n ja katson vaikuttaako se mitenkän. (Ehkä ehkä ei?) ja sen jälkeen jatkan tuohon upstarttiin tutustumista. Imho, siitä oli hankalaa löytää selkeää ja kompaktia ohjetta miten palveluita lisätään ja poistetaan. Mutta tätähän tämä on, oppia ikä kaikki. Ihmetellään kunnes alkaa toimimaan.

Onhan tää kiva että on jotain tekemistä viikonlopuksi, ettei tule aika ihan pitkäksi. Eh...

P.S. Tämäkin on muuten siellä rc2.d hakemistossa:
Koodia: [Valitse]
lrwxrwxrwx  1 root root   18 Sep 25 20:17 S99rc.local -> ../init.d/rc.local
Eikä sitä suoriteta.

"initctl list" ei näytä apache2sta, joten on aika selvää että tuossa ongelma on. Jatketaan tutkimuksia.

Poistaminen ja uudelleen asentaminen ei myöskään muuttanut yhtään mitään. ;( Jatketaan jumppaa huomenna.

Terkut,
Sami

Edit: Pari typoa korjattu.
« Viimeksi muokattu: 22.10.11 - klo:19.31 kirjoittanut Sami Lehtinen »

mrl586

  • Käyttäjä
  • Viestejä: 4638
    • Profiili
Vs: Apache2 ei käynnisty bootin yhteydessä
« Vastaus #6 : 21.10.11 - klo:21.46 »
Oletko testannut, poistuuko plymouth seuraavilla komennoilla?
Koodia: [Valitse]
cd /etc/init
rm -f plymouth*

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Vs: Apache2 ei käynnisty bootin yhteydessä
« Vastaus #7 : 22.10.11 - klo:00.59 »
Tässä on hyödyllinen kuvaus noista kahdesta käynnistysmekanismista, tavanomainen System-V ja uusi Ubuntun kehittämä Upstart:

http://askubuntu.com/questions/19320/whats-the-recommend-way-to-enable-disable-services/20347#20347

Tuo Upstartin idea on hyvä, tulee varmaan yleistymään.  Lyhyesti, vanhassa tavassa käynnistyskomennot laitettiin vain peräkkäin A, B, C, D, ...    Perässä tuleva käynnistyi vasta kunnes kaikki edelliset olivat kokonaan valmistuneet.  Tuo voi olla aika hidasta.   Upstartissa nuo laitetaan rinnakkain käyntiin.  Kussakin on koodattuna tarkastusehdot milloin voidaan lähteä eteenpäin eli odotetaan kunnes vaaditut ehdot on täytetty.      Kun ajatellaan että käynnistettäviä asioita on paljon niin ei tarvitse odottaa kaikkia edeltäviä asioita valmistumaan peräkkäin (System-V) vaan tarkastetaan vain mitä kyseisen ohjelman käynnistäminen edellyttää ja mennään eteenpäin.  

Upstartin komentotiedostot ovat täällä ---> /etc/init/*.conf  

Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

Sami Lehtinen

  • Käyttäjä
  • Viestejä: 754
  • Techie
    • Profiili
    • Sami Lehtinen
Oletko testannut, poistuuko plymouth seuraavilla komennoilla?
Koodia: [Valitse]
cd /etc/init
rm -f plymouth*

Poistui tuolla. Loin ensin alihakemisto init hakemistoon ja siirsin fileet sinne, mutta sepä ei auttanut. Seuraavaksi siirsin tuon alihakemiston /root/ polun alle ja silloin plymouthd ei enään käynnistynyt. Eli myös init hakemiston alla olevat alihakemistot skannataan.

Kyllä tämä alkaa tästä selvästi selviämään. Pitää vaan järjestellä sopivat jutut tonne init kansioon niin saa Apachen käyntiin varmasti. Samalla voi katsoa kaikki nuo muut palvelut (joista useimpia en kyllä käytä), mutta turhat veke ja tarpeelliset käyntiin.

Onko tuohon upstarttiin mitään rcconf / bum tyylistä editoria? Tutkiskelen kyllä lisää, mutta nämä nyt oli vaan tällaiset nopeat testit / aatokset ennen saunaa. Päivä on mennyt pääasiassa yhtä App Engine softaa koodaillessa.

Onneksi nää serverit ei ole missään tuotantokäytössä ja jos olisikin, niin luonnollisesti otan imagen koko myllystä ennen distribution upgraden tekemistä. Valitettavan usein juuri ongelmien ehkäisemiseksi päivitykset jääkin tuotantoon usein ajamatta. Se sitten taas tuo vuosien saatossa muita riskejä.

Edit jatkuu:

On muuten jotain muuta vakavampaakin pielessä tuon distribution upgraden jälkeen:
Koodia: [Valitse]
Cpu1  : 24.9%us, 49.9%sy,  0.0%ni, 25.2%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  SWAP COMMAND                                                                                                                            
    1 root      20   0 23612 1684 1316 R  100  0.4  18:47.48  21m init  


 20:52:44 up 21 min,  0 users,  load average: 1.00, 0.97, 0.71

Koko init-systeemi imee ihan järjettömästi järjestelmä resursseja.

Eipä näytä kovin vahvalta. Eli apache2:n käynnistyminen on vain pieni osa onglemia mitä päivitys tuo tullessaan. ;)

Taidan sittenkin vetää apache2:n konfigit talteen ja palauttaa aikaisemman version virtuaalikoneesta. Ongelmalista päivityksen jälkeen näyttää yksinkertaisesti vähän turhan pitkältä. Jumpattavaksi jää kasoittain toistaan epäselvempiä ongelmia.

Heh. Tässä taas yksi loistava esimerkki siitä, miksi joskus alustat kuten GAE on sittenkin hyvä ratkaisu. Joskin on siinäkin omat ongelmansa. mm. Python 2.4 alustan tuki loppuu ja on pakko päivittää Python 2.5:n. Joten tällä menolla on varsin luonnollista olettaa, että myös 2.5 alustan tuki loppuu ja on pakko siirtyä 2.7 versioon joka taas toi monia isoja muutoksia systeemeihin.
« Viimeksi muokattu: 22.10.11 - klo:20.00 kirjoittanut Sami Lehtinen »

Sami Lehtinen

  • Käyttäjä
  • Viestejä: 754
  • Techie
    • Profiili
    • Sami Lehtinen
Jep. Mitta tuli täyteen, päivitys on susi ja sillä selvä. Palautin edellisen version. Meni 15 minsaa aikaa siihen, että kaikki oli kunnossa ja toimii hyvästi.

Ehkä joskus kokeilen uudelleen. Mutta odotellaan nyt taas se puolisen vuotta, että saavat tuon version kuntoon. ;)

Edit:
Tässä vielä asiasta kiinnostuneille asiaa. /run on otettu myös käyttöön uuden Ubuntun kanssa. Sekä monia muita systeemeitä, kuten systemd ja tuo aikaisemmin mainittu upstart.

http://wiki.debian.org/ReleaseGoals/RunDirectory
« Viimeksi muokattu: 22.10.11 - klo:21.01 kirjoittanut Sami Lehtinen »

mrl586

  • Käyttäjä
  • Viestejä: 4638
    • Profiili
Tässä vielä asiasta kiinnostuneille asiaa. /run on otettu myös käyttöön uuden Ubuntun kanssa. Sekä monia muita systeemeitä, kuten systemd ja tuo aikaisemmin mainittu upstart.
Ubuntussa ei käytetä vielä systemd:tä. Sen sijaan Fedorassa ja OpenSusessa sitä jo käytetään.
On muuten jotain muuta vakavampaakin pielessä tuon distribution upgraden jälkeen:
Koodia: [Valitse]
Cpu1  : 24.9%us, 49.9%sy,  0.0%ni, 25.2%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  SWAP COMMAND                                                                                                                            
    1 root      20   0 23612 1684 1316 R  100  0.4  18:47.48  21m init  


 20:52:44 up 21 min,  0 users,  load average: 1.00, 0.97, 0.71

Koko init-systeemi imee ihan järjettömästi järjestelmä resursseja.
Sinulla lienee käytössä CentOS 5:stä peräisin oleva antiikkinen 2.6.18-kerneli? Onnittelut, törmäsit tunnettuun bugiin! Tämä bugi ilmenee vain kun käytät liian tuoretta upstarttia liian vanhan kernelin kanssa. Ratkaisuna on joko päivittää kerneli 2.6.32-sarjaan (eli CentOS 6:n käyttöönotto) tai upstartin alaspäin päivitys. Nattyn repoista löytynee toimiva upstart, jonka saa asennettuna sieltä myös oneiriciin.
« Viimeksi muokattu: 22.10.11 - klo:23.42 kirjoittanut mrl586 »

Sami Lehtinen

  • Käyttäjä
  • Viestejä: 754
  • Techie
    • Profiili
    • Sami Lehtinen
CentOS 5:stä peräisin oleva antiikkinen 2.6.18-kerneli? Onnittelut, törmäsit tunnettuun bugiin!

Systeemi on Ubuntu 11.04 (oli 11.10), joka pyörii OpenVZ containerissa. uname -r sanoo: 2.6.32-042stab036.6. Näköjään tuo ongelma ilmenee siis vähän uudemmalla kernelillä? Mutta tämä ei ilmeisesti ole kuitenkaan tarpeeksi uusi?

Tällainen kerneli olisi tarjolla: linux-image-2.6.38-11-virtual mutta tuon asentamiseen liittyy kasa kaikkea muuta ylimääräistä(?) roinaa. Lakkaako systeemin toimivuus tuohon päivitykseen?

Lista on vaan sen verran pitkä, että tuo huonon fiiliksen. Vaikka ei tietenkään perustu tällä kertaa mihinkään tietoon.

Koodia: [Valitse]
root@s:~# apt-get install linux-image-2.6.38-11-virtual
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  dmsetup grub-common grub-gfxpayload-lists grub-pc libdevmapper1.02.1
  libfuse2 os-prober wireless-crda
Suggested packages:
  multiboot-doc grub-emu xorriso desktop-base fuse-utils fdutils
  linux-doc-2.6.38 linux-source-2.6.38 linux-tools
The following NEW packages will be installed:
  dmsetup grub-common grub-gfxpayload-lists grub-pc libdevmapper1.02.1
  libfuse2 linux-image-2.6.38-11-virtual os-prober wireless-crda
0 upgraded, 9 newly installed, 0 to remove and 0 not upgraded.
Need to get 14.4 MB of archives.
After this operation, 42.6 MB of additional disk space will be used.
Do you want to continue [Y/n]?

Image on taas tallessa joten jos lakkaa, niin eipä maailma siihen kaadu. 15 minuuttia menee palautukseen. Uskaltaisikohan tuon ajaa. Toistaiseksi peruutin. Toisaalta, onko syytä päivittää, kun ei ole oikeastaan mitään syytä päivitää. Varsinkin jos päivityksestä voi odottaa vain(?) ongelmia.

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Katsoinpas nyt minne se Apachen käynnistys menee 11.10 desktop: lla, ei ollut tuolla Upstartin (/etc/init) puolella vaan edelleen "vanhalla" (/etc/init.d) puolella:

ls /etc/init.d/apa*
/etc/init.d/apache2

ja käynnissä oli valmiiksi:

sudo service apache2 status
[sudo] password for ajaaskel:
Apache2 is running (pid 1248).

Tuollaista "bum" juttua Upstart: lle ei liene vielä tai ainakin sen puutetta valiteltiin ulkomaisilla foorumeilla mutta tuokin muuttunee pian.  Upstartin uudemmassa versiossa on uusi komento "manual"  jolla on helppoa estää käynnistyksessä latautuminen ja toisaalta tuon komennon laittaminen risuaidan taakse taas aktivoisi automaattisen latauksen eli tuon "upstart bummin" tekeminen olisi yksinkertainen juttu.  Täällä on kerrottu noista asioista:

http://upstart.ubuntu.com/cookbook/

(Sorry, tuo on hieman pitkä mutta kyllä sieltä kahlaamalla löytää.)
« Viimeksi muokattu: 24.10.11 - klo:21.09 kirjoittanut ajaaskel »
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

Sami Lehtinen

  • Käyttäjä
  • Viestejä: 754
  • Techie
    • Profiili
    • Sami Lehtinen
Katsoinpas nyt minne se Apachen käynnistys menee 11.10 desktop: lla, ei ollut tuolla Upstartin puolella vaan edelleen "vanhalla" puolella:

 Noin minäkin oletin sen toimivan ja lähtevän käyntiin. Kuten aikaisemmista seteistä näkyi, niin kaikki käynnistys systeemit oli todellakin vanhalla puolella koska apache2 palvelua ei ole "päivitetty" upstarttiin vielä. Googlaamalla löytyi kyllä myös scriptit joilla sen olisi voinut siirtää upstartin puolelle.

Kuten tässä kävi ilmi, tuolla oli jotain muutakin ongelmaa päivityksen jälkeen. En tunne tarpeeksi tarkasti tuota käynnistysprosessia, mutta mikään vanhalla puolella tehty muutos ei vaikuttanut mitenkään bootissa. Vaikka kaikki järjestelmät olivat täysin toimivia bootin jälkeen ja käynnistyivät service komennolla. Pitkässä ketjussa joku paikka petti, enkä valitettavasti vaivautunut etsimään sitä mikä petti, vaikka luonnollisesti se olisi ollut löydettävissä riittävällä panostuksella asiaan. Luonnollisesti ongelman paikallistamista vaikeutti olennaisisti mm. se ettei logeista löytynyt mitään asian ratkaisussa helpottavaa asiaa. Ymmärsin myös että mikäli bootti olisi mennyt normaalisti loppuun plymouthd:n ei olisi pitänyt olla prosessilistassa.

Lainasin myös aikaisemmin linkin jonka rcconf päivitti:
Koodia: [Valitse]
lrwxrwxrwx  1 root root   17 Oct 20 16:16 S91apache2 -> ../init.d/apache2
Sekä kerroin että tuolla init.d/apache2 fileessä oleva date > /tmp/apache2-start komento ei tullut koskaan suoritetuksi.

Jostain syystä tuo vanhempi käynnistys järjestelmä jäi täysin toimimattomaksi. Ehkä upstart kutsuu jossain vaiheessa tuota vanhempaa systeemiä? Ehkä järjestelmä jumiutui ennen kuin pääsi tuohon pisteeseen.

Pitää joskus ottaa toinen erä kun on kerännyt sopivasti energiaa tuollaisen turhan(?) ongelman kanssa painimiseen.

Kiitos kaikille jotka auttoivat asian selvittelyssä. Vielä jäi hieman epäselväksi se, millaisia debug toimenpiteitä / logikatselmuksia olisitte suositelleet. Koska minulla ei ollut hyvää käsitystä siitä, miten asian ratkaisemisen suhteen pitäisi jatkaa, niin että ongelma tulisi tehokkaasti ja järkevästi ratkaistuksi. Tämä oli syy miksi päätin lopettaa ongelman ratkaisemisen, sen sijaan että jatkaisin pään hakkaamista seinään.
« Viimeksi muokattu: 24.10.11 - klo:21.15 kirjoittanut Sami Lehtinen »