[gentoo] services herstarten zonder volledige reboot

Pagina: 1
Acties:

  • deepbass909
  • Registratie: April 2001
  • Laatst online: 22:27

deepbass909

[☼☼] [:::][:::] [☼☼]

Topicstarter
Ik heb m'n server een nogal grote software update gegeven en wil nu eigenlijk wel al m'n services herstarten om alles van kracht te laten worden. Het gaat om Gentoo.

Nu kan ik een reboot doen, maar dat wil ik om 2 redenen eigenlijk niet.
1: dan ben ik m'n mooie uptime van bijna 80 dagen kwijt, en tja, sinds het Uptime project...
2: Ik zit momenteel nogal ver van deze server vandaan, dus als er iets mis gaat met de kernel kan ik er niet even makkelijk achter kruipen om het te fixen...

Nu vroeg ik me af of het mogelijk is om geheel runlevel 3 te herstarten (dus alles stoppen (ook dependencies) en herstarten). Of moet ik het met de hand gaan doen door elke service te herstarten?

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier


  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 27-01 12:55

Bergen

Spellingscontroleur

Je kunt teruggaan naar level 1 met 'init 1' en daarna weer naar 3 met 'init 3', of services handmatig herstarten met commando's als: /etc/init.d/networking restart. (dus de parameter 'restart' achter elke service, maar dan moet het desbetreffende script dat wel ondersteunen.) Eventueel kun je ook eerst stoppen met 'stop' en dan met (tromgeroffel!) 'start' weer starten.. De rc-scripts staan bij Debian en varianten tenminste in /etc/init.d, bij gentoo zou dat anders kunnen zijn.

Als je overigens naar level 1 gaat vraagt Debian of je de normale bootstrap wilt hervatten, met CTRL+D. Misschien doet Gentoo dat ook.

Voor de volledigheid:
level 0 = shut down
level 1 of S = single user
level 2 t/m 5 = multiuser (distroafhankelijk, zie /etc/inittab)
level 6 = reboot

[edit]
Hmm, ik zie nu pas dat je niet bij je server zit. Als je dan via SSH naar init 1 gaat weet ik niet zeker of de SSH-sessie ook wordt afgesloten. Ik probeer 't hier lokaal wel even uit, hold on. :)

[ Voor 96% gewijzigd door Bergen op 11-04-2006 06:01 ]


  • deepbass909
  • Registratie: April 2001
  • Laatst online: 22:27

deepbass909

[☼☼] [:::][:::] [☼☼]

Topicstarter
Alle init scripts staan bij gentoo netjes in /etc/init.d (gentoo is erg strikt in dat opzicht, gelukkig).
Ik wil eigenlijk niet alles met met hand moeten stoppen en daarna opnieuw starten, omdat ik vrij veel services heb draaien...
Maar aan de andere kant ben ik bang dat als ik naar init 1 ga, m'n ssh verbinding weg zal vallen, en ik dus op afstand niks meer kan doen, helemaal als hij op een CTRL+D staat te wachten...

Ik ga eerst m'n /etc/init.d directory maar eens opschonen (er staan nog veel scripts in van programma's die ik niet draai en geeneens meer geïnstalleerd heb staan, zoals Apache versie 1. (Zowieso kan hij wel een schoonmaakbeurt gebruiken...) En daarna toch maar de verschillende services stoppen op sshd na (die is inmiddels al een keer herstart en draait al met de nieuwe versie) en dan met rc alles opnieuw starten (met rc worden alle draaiende services vergeleken met welke er in het actieve runlevel zouden horen te draaien en worden de missende gestart en overbodige gestopt)

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier


  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 27-01 12:55

Bergen

Spellingscontroleur

Ja, zie m'n edit. Heb 't even geprobeerd en de SSH-sessie valt dan inderdaad weg.

Je zou een S99 scriptje in /etc/rc1.d/ kunnen plaatsen wat init 3 aanroept, maar dat wordt dan gedraaid terwijl init zelf nog loopt. Ik probeer even of dat werkt...
[edit]
Nee werkt niet, hij komt toch bij de maintenance-password-login uit. Maar bij nader inzien is dat nogal logisch, want die login wordt door S20single aangeroepen:
exec init -t1 S
Het is misschien een ranzige oplossing, maar die regel zou je door init 3 kunnen vervangen. :) (tijdelijk natuurlijk)

rc kent Debian trouwens niet. Tenminste, niet in de vorm zoals jij hem omschrijft. Volgens de omschrijving in de deb-repository is 't een shell:
Description: an implementation of the AT&T Plan 9 shell
rc is a command interpreter and programming language similar to sh(1). It is based on the AT&T Plan 9 shell of the same name. The shell offers a C-like syntax (much more so than the C shell), and a powerful mechanism for manipulating variables. It is reasonably small and reasonably fast, especially when compared to contemporary shells. Its use is intended to be interactive, but the language lends itself well to scripts.

[ Voor 138% gewijzigd door Bergen op 11-04-2006 06:32 ]


Verwijderd

Maak gewoon een runlevel waarin je alles stopt behalve het netwerk en ssh.

  • deepbass909
  • Registratie: April 2001
  • Laatst online: 22:27

deepbass909

[☼☼] [:::][:::] [☼☼]

Topicstarter
rc is in gentoo een script om automatische alle services in het actieve runlevel te starten en die niet horen te draaien stopt.
Ik zou natuurlijk kunnen doen wat DotHack omschrijft. M'n server is nu nog aan het kopiëren over het netwerk, want ik nog niet wil onderbreken, maar daarna zal ik het eens proberen.

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier


  • Parasietje
  • Registratie: Juli 2004
  • Laatst online: 10-06-2024

Parasietje

linux-geek

Met 'rc-update show' toon je meteen even alle init-scripts die in het huidig runlevel zouden moeten draaien. Met wat grep en awk zou dit makkelijk moeten te converteren zijn naar een lijstje van services die je allemaal afzonderlijk stopt en weer start. Doe dit in een screen sessie, zodat je script niet stopt als sshd afgesloten wordt.
Probleem opgelost, toch?

WebDAV in Vista is horribly broken. Ik wil het fixen, maar ben nog steeds op zoek naar de tarball met de source...


  • deepbass909
  • Registratie: April 2001
  • Laatst online: 22:27

deepbass909

[☼☼] [:::][:::] [☼☼]

Topicstarter
Helaas toont rc-update alleen de services die direct gestart worden. Er zijn een aantal services die als dependencie gestart worden. Dus vertrouwen op de lijst van rc-update show heeft niet zoveel zin, want niet alles wordt getoont.
Ik ga op m'n gemak wel alles stoppen en dan met rc alles opnieuw starten.

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier


  • laurencevde
  • Registratie: November 2001
  • Laatst online: 02-10-2025
zorg dat in /etc/conf.d/rc RC_KILL_CHILDREN="no" dan blijft je ssh-sessie als het goed is actief tijdens het restarten van de services.

Have a taste of freedom. It is sometimes a bitter pill. To me though, this is the sweetness of the GPL


  • TrJ
  • Registratie: Augustus 2002
  • Laatst online: 04-07-2025

TrJ

debian

Om niet meteen te rebooten doe ik altijd "/etc/init.d/deservicediejewilrestarten restart" gaat ook met ssh zonder problemen na een update

  • deepbass909
  • Registratie: April 2001
  • Laatst online: 22:27

deepbass909

[☼☼] [:::][:::] [☼☼]

Topicstarter
@TrJ
Daar gaat het juist om, dan moet ik elke service stuk voor stuk herstarten.

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier


  • TrJ
  • Registratie: Augustus 2002
  • Laatst online: 04-07-2025

TrJ

debian

O sorry, ik dacht dat je het niet durfde of wist hoe...ik restart meestal na een update en doe geen uptime wedstrijden dus een reboot is dan niet erg. Maar zijn het er echt zoveel dat je ze niet met de hand wil herstarten?

edit:
code:
1
2
3
4
5
6
 # /etc/init.d/* restart
 * Caching service dependencies ...                                       [ ok ]
 * ERROR: wrong args ( /etc/init.d/bootmisc )

 * Usage: alsasound { start|stop|restart|pause|zap|save|restore }
 *        alsasound without arguments for full help


werkt ook niet :+

[ Voor 51% gewijzigd door TrJ op 11-04-2006 18:35 ]


  • deepbass909
  • Registratie: April 2001
  • Laatst online: 22:27

deepbass909

[☼☼] [:::][:::] [☼☼]

Topicstarter
Normaal zou ik ook geen ene donder geven om uptime dingen. Maar 1 van de update's betreft een nieuwe kernel en mijn ervaring is dat herstarten soms met een nieuwe kernel weleens fout gaan. Ik kan dat op dit moment niet herstellen (aangezien ik zo'n 13000km bij de server vandaan zit). Een service herstarten maakt m'n systeem niet direct onbereikbaar op het moment dat het fout gaat. Vandaar dat ik eigenlijk de kernel wil laten doordraaien en alleen de services wil herstarten.
Het is niet een verschikkelijk lijst, er draaien zo'n 13 services die tijdens het opstarten gestart worden, en daarnaast nog een paar dependencies. sshd is al een keer herstart, en ik weet van dit script dat het z'n child processen niet kilt, zodat je door kan werken ook al is de daemon zelf gestopt. Je moet alleen wel zo helder blijven dan je niet je sessie sluit of in een time-out laat gaat, want dan is hij wel weg. Andere processen leveren opzich geen problemen op.
Het andere punt waarom ik het eigenlijk door Gentoo zelf wou laten doen, is dat het hele opstart proces een bepaalde volgorde heeft bepaald door de rangorde van een script. Om het zelf in de correcte volgorde te doen is nogal lastig en kan doordaar tot gevolg hebben dat het systeem niet helemaal lekker meer loopt. Gelukkig ontdekte ik via experimenten met ACPI op m'n laptop het rc script. Deze houdt wel netjes rekening met de opstart volgorde en volgens mij is dit script ook verantwoordelijk voor het init 3 proces tijdens het booten en afsluiten. Deze kan ik dus mooi gebruiken om al m'n services weer in de lucht te krijgen.

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier


  • freggy
  • Registratie: Juli 2002
  • Niet online
TrJ schreef op dinsdag 11 april 2006 @ 18:26:

code:
1
2
3
4
5
6
 # /etc/init.d/* restart
 * Caching service dependencies ...                                       [ ok ]
 * ERROR: wrong args ( /etc/init.d/bootmisc )

 * Usage: alsasound { start|stop|restart|pause|zap|save|restore }
 *        alsasound without arguments for full help


werkt ook niet :+
Uiteraard niet, dat wordt geëxpandeerd naar:
code:
1
/etc/init.d/alsasound /etc/init.d/bootmisc /etc/init.d/foo /etc/init.d/foobar ... restart

Alle scripts worden dus argumenten voor het eerste script.

Dit zal beter werken:
code:
1
2
3
4
# for i in /etc/init.d/*
do
$i restart
done


Alhoewel het mij ook niet een goeie oplossing lijkt: alle services die momenteel niet gestart zijn, ga je hiermee wel ook opstarten. Bovendien houd je geen rekening met eventueel afhankelijkheden die van belang zijn voor de opstartvolgorde.

  • BoAC
  • Registratie: Februari 2003
  • Laatst online: 22:35

BoAC

Memento mori

Freggy schreef op dinsdag 11 april 2006 @ 18:58:
[...]


Uiteraard niet, dat wordt geëxpandeerd naar:
code:
1
/etc/init.d/alsasound /etc/init.d/bootmisc /etc/init.d/foo /etc/init.d/foobar ... restart

Alle scripts worden dus argumenten voor het eerste script.

Dit zal beter werken:
code:
1
2
3
4
# for i in /etc/init.d/*
do
$i restart
done


Alhoewel het mij ook niet een goeie oplossing lijkt: alle services die momenteel niet gestart zijn, ga je hiermee wel ook opstarten. Bovendien houd je geen rekening met eventueel afhankelijkheden die van belang zijn voor de opstartvolgorde.
Dan moet de inhoud van /var/lib/init.d/started worden genomen ;)
Letten op de tijd van de aangemaakte symlink is dan handig zodat je niet een service voor de 2e keer herstart door evt. afhankelijkheden :P

[ Voor 10% gewijzigd door BoAC op 11-04-2006 20:02 ]


  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 27-01 12:55

Bergen

Spellingscontroleur

Is de optie die ik gaf geen mogelijkheid? Dus in S20single het init S regeltje tijdelijk vervangen door init 3?

  • Seth4Chaos
  • Registratie: Maart 2001
  • Niet online

Seth4Chaos

that's me...

Freggy schreef op dinsdag 11 april 2006 @ 18:58:
Dit zal beter werken:
code:
1
2
3
4
# for i in /etc/init.d/*
do
$i restart
done


Alhoewel het mij ook niet een goeie oplossing lijkt: alle services die momenteel niet gestart zijn, ga je hiermee wel ook opstarten. Bovendien houd je geen rekening met eventueel afhankelijkheden die van belang zijn voor de opstartvolgorde.
als je het veranderd in hetvolgende:
code:
1
2
3
4
5
# for i in /etc/init.d/*
do
$i stop
done
rc

hiermee worden eerst alle services gestopt en met 'rc' worden alle services gestart/gestopt die moeten draaien voor dit runlevel.

Ik heb het niet getest ofzo maar zou het wel even in een screen draaien.

Mistakes are proof that you are trying...


  • decramy
  • Registratie: December 2001
  • Laatst online: 07-02 13:04

decramy

root@birdie:~#

erm, hij heeft t over een kernel update...
Die kun je alleen uitvoeren als je het systeem reboot.

Mijn inziens kun je het best gewoon iemand vragen standby te zijn voor als het fout gaat tijdens de reboot die je uit gaat voeren...
Uptime? Jammer dan. Ik heb wel eens een uptime van 365 dag gehad en gereboot. Je moet dingen functioneel bekijken en niet 'om de kick'

[ Voor 32% gewijzigd door decramy op 12-04-2006 10:59 ]

20*375Wp met Enphase IQ7+ micro's | Stiebel Eltron HGE Water/Water WP 9kW | Tesla M3, powered by SmartEVSE | Servertje @ www.coloclue.net


  • deepbass909
  • Registratie: April 2001
  • Laatst online: 22:27

deepbass909

[☼☼] [:::][:::] [☼☼]

Topicstarter
Uhm, ik wil wil m'n services update ZONDER kernel restart. En ik heb het helemaal niet over een kernel update, alleen dat die nog niet noodzakelijk is en dus nog kan wachten.
En die uptime kan me normaal gesproken gestolen worden, het is leuk dat hij nu zo hoog is, maar meer ook niet. Ik heb alleen niet iemand in de buurt van dat ding die even snel linux kan trouble shooten. Dus zolang de kernel stabiel draait, blijft hij ook mooi draaien. Ik zit alleen met een partij geupdate software (onder andere gehercompileerd met GCC 3.4.5) die ik graag wil herstarten om fouten te voorkomen.

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier


  • zomertje
  • Registratie: Januari 2000
  • Laatst online: 03-02 16:28

zomertje

Barisax knorretje

Doe dan gewoon wat ze hierboven adviseren en herstart gewoon een aantal van de services. Via ps -ef kun je al kijken wat er allemaal draait. Het zullen er vast geen honderden zijn :)

(en uptime is alleen maar stoer als het minimaal 2 jaar is voor een productieserver met 100 databases ;) :+ )

het ultieme jaargetijde.... | #!/usr/bin/girl | Art prints and fun


  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 27-01 12:55

Bergen

Spellingscontroleur

In de tijd dat dit topic loopt had je al die services alllllllllllllang handmatig kunnen herstarten. ;)
zomertje schreef op woensdag 12 april 2006 @ 19:40:

(en uptime is alleen maar stoer als het minimaal 2 jaar is voor een productieserver met 100 databases ;) :+ )
Hoge uptimes zijn uit, lage uptimes zijn de nieuwe rage. :+

[ Voor 58% gewijzigd door Bergen op 12-04-2006 23:44 ]


  • deepbass909
  • Registratie: April 2001
  • Laatst online: 22:27

deepbass909

[☼☼] [:::][:::] [☼☼]

Topicstarter
@Bergen
klopt helemaal, ze zijn ook herstart door ze met de hand te stoppen.
Het duurde alleen wat langer in verband met het redden van een FAT32 schijf, wat ondertussen ook op de machine draaide. Dat moest eerst afgerond zijn.
Het was ook nooit m'n bedoeling dat dit topic zo lang zou worden... Ik zocht eigenlijk alleen een opdracht om geheel runlevel 3 te herstarten, maar dat bestaat blijkbaar niet.

In iedergeval, het is herstart, tips zijn nog wel welkom, maar ik zal ze niet meer gebruiken.

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier


  • Jimbolino
  • Registratie: Januari 2001
  • Laatst online: 06-02 16:17

Jimbolino

troep.com

als je zo bang bent voor een kernelupdate, dan update je je kernel toch gewoon niet?

niet reboten vanwege de uptime is zoiezo vreemd. Je gaat je pc toch ook niet overklokken omdat het leuk staat, je doet het omdat ie er sneller van wordt.

The two basic principles of Windows system administration:
For minor problems, reboot
For major problems, reinstall


  • polthemol
  • Registratie: Maart 2006
  • Laatst online: 04-02 13:39

polthemol

Moderator General Chat
zoeen situaties zijn waarom ik dan aan een belangrijke server een oude p133 hang met een com - com verbinding naar de server, kost niets aan stroom en je kunt klooien wat je wil op je server met kernels :D

Maar ging gentoo al niet een deel van die services zelf restarten als ze een update haddeng ekregen of was dat debian óO *twijfel*

Nunc purus risus, volutpat sagittis, lobortis at, dignissim sed, sapien


  • deepbass909
  • Registratie: April 2001
  • Laatst online: 22:27

deepbass909

[☼☼] [:::][:::] [☼☼]

Topicstarter
Gentoo doet niks zonder dat de gebruiker daar opdracht toe geeft.

@Jimbolino
Sinds m'n vorige server ben ik huiverig om hem zomaar opnieuw op te starten. Deze machine heeft niet echt exotische hardware, maar ik ben toch erg voorzichtig met m'n server.

Maar goed, alles is al weer in orde.

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier

Pagina: 1