Kurzzeitig fast alle Dienste abschalten und wieder zurück

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
tjhooker
Beiträge: 41
Registriert: 29.05.2007 09:28:45

Kurzzeitig fast alle Dienste abschalten und wieder zurück

Beitrag von tjhooker » 13.06.2007 10:29:11

Hi.

Ich habe einen kleinen virtuellen Server im Netz.

Es gibt Momente, in denen ich gerne mal alle Dienste abschalten und nach wenigen Sekunden wieder reinitialisieren möchte.
(praktisch wie ein Reboot ohne aber den Reset und den Kernelboot-Vorgang)

Warum?:
- Reboot dauert zw. 5 und 30 Minuten
- init 6 bzw. reboot wirken wie init 0 (XEN)
- Konfigurationstest in Zusammenhang mit den verschieden Diensten, um festzustellen, sollte er mal unbeaufsichtigt Bootet, das alles glatt geht.

Ich habe mir gedacht, init/runlevel 4 ist doch ungenutzt und wäre evtl. dafür eine Idee. ratsam?

Ich lösche also alles aus dem Verzeichnis /etc/rc4.d
Und schiebe jeden Dienst, den ich in /etc/init.d find als Symbolische Link in diese Verzeichnis.

Außer halt, reboot und sshd. (oder evtl. noch mehr?)

Dann noch ein K00-98 jeweils davor.
Und in die K99 schreibe ich sleep 15 und init 2 als Bash-Befehl.


Das das verrückt ist, ist klar. Aber ist es trotzdem ratsam?

Kann man die Ausgaben, die ich ja leider Virtuell nicht sehe, irgendwie abfangen bzw. auf /dev/pts/0 senden/weiterleiten lassen?

Gruß

Benutzeravatar
CrashMan
Beiträge: 340
Registriert: 07.04.2007 14:04:27
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: MD

Beitrag von CrashMan » 13.06.2007 11:30:08

An meinem Desktoprechner versuche ich dann immer ein init 1.
Ist auch vieles dicht...aber glaube nicht, dass das mitm virtuellen Server klappt
debian stable + arch

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 13.06.2007 12:08:13

Eigentlich sind die Runlevel ja genau dafür da. Solange es um
"echte Dienste" geht (Apache, Exim, ...) funktioniert das natürlich.
Aber alles, was im Runlevel S gestartet wird, erwischt man auf
die Art nicht.

Auf jeden Fall solltest du dir das Paket "file-rc" anschauen, das
ersetzt die Links in /etc/rc.x durch eine einzelne Text-Datei. Ich finde
es viel übersichtlicher und schneller anzupassen. Man kann Zeilen
(= Dienste) einfach auskopieren und kann ganz einfach Kopien von
funktionieren Konfigurationen machen - ein Traum für Experimente.

Um die Meldungen zu speichern, kann man den "bootlogd" benutzen,
der dürfte standardmässig installiert sein. In "/etc/default/bootlogd"
kann man einstellen, ob er beim Booten gestartet werden soll.
Nachträglich kann man ihn auch einfach mit "/sbin/bootlogd -s"
starten. Alle Console-Meldungen landen dann in "/var/log/boot",
falls die Datei schon vorher existiert(!).

Ob man aus einem Init-Script heraus den Runlevel ändern kann,
ist aber die Frage. Auf meinem Etch hat es fast funktioniert:

Code: Alles auswählen

#!/bin/sh
echo test 1
sleep 10
echo test 2
init 2
echo test 3
"test 1" und "test 2" stehen in /var/log/boot, "test 3" nicht.

Und dann solltest du die "/etc/inittab" kontrollieren, die wird beim
Runlevel-Wechsel natürlich auch ausgewertet. Bei meinem Test
hatte ich in Runlevel 4 keine Konsolen mehr, weil das von früheren
Experimenten da noch so drinstand :D
Beware of programmers who carry screwdrivers.

tjhooker
Beiträge: 41
Registriert: 29.05.2007 09:28:45

Beitrag von tjhooker » 13.06.2007 12:50:08

Hi nochmal.


Also von der /etc/runlevel.conf bin ich begeistert ;-) - großes Danke für den Tipp. Echt komfortabel.
Bin mal gespannt, wie gut das System bei updates weiterhin damit klar kommt.

Da muss ich gleich mal nebenbei fragen: Gibt es allgemeines ein Script (für beide Sysinit-Varianten), welche die links bzw. die hier jetzt Config-Einträge erzeugt?



Gruß

PS: Momentan such ich nur in aptitude den bootlogd. Ist unter irgendwas anderem versteckt?

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 13.06.2007 13:03:29

tjhooker hat geschrieben:Bin mal gespannt, wie gut das System bei updates weiterhin damit klar kommt.
gut, mir ist noch nichts aufgefallen...
bis auf: bei Updates wird die Zeile für das jeweilige Paket
neu eingetragen, auch wenn ich sie auskommentiert hatte.

Der bootlogd ist bei mir in /sbin "versteckt", ;)
aber schau mal auf Debian Packages
Beware of programmers who carry screwdrivers.

tjhooker
Beiträge: 41
Registriert: 29.05.2007 09:28:45

Beitrag von tjhooker » 13.06.2007 13:08:12

cosmac hat geschrieben:
tjhooker hat geschrieben:Bin mal gespannt, wie gut das System bei updates weiterhin damit klar kommt.
gut, mir ist noch nichts aufgefallen...
bis auf: bei Updates wird die Zeile für das jeweilige Paket
neu eingetragen, auch wenn ich sie auskommentiert hatte.

Der bootlogd ist bei mir in /sbin "versteckt", ;)
aber schau mal auf Debian Packages
Also war es schon dabei. Ver....., daran nicht als erstes gedacht.

Doch es funktioniert schreinbar nicht auf einer virtuellen Machine.

"bootlogd: cannot find console device 136:0 in /dev"

Gut. Dann muss ich darauf leider verzichten.

Vielen Dank für deine Infos nochmal.

Gruß

Benutzeravatar
Mike1985
Beiträge: 148
Registriert: 01.05.2005 14:38:11
Wohnort: Lienz / Austria
Kontaktdaten:

Beitrag von Mike1985 » 13.06.2007 13:11:42

tjhooker hat geschrieben: Da muss ich gleich mal nebenbei fragen: Gibt es allgemeines ein Script (für beide Sysinit-Varianten), welche die links bzw. die hier jetzt Config-Einträge erzeugt?
Für beides kenne ich nicht, aber für die Variante mit Links verwende ich sysv-rc-conf.
tjhooker hat geschrieben: PS: Momentan such ich nur in aptitude den bootlogd. Ist unter irgendwas anderem versteckt?
Dieser ist bei den sysvinit dabei, also sollte er schon nach der Standardinstallation verfügbar sein.[/quote]
Debian GNU/Linux SID
Workstation: Cider: C2D 6400, Gigabyte GA-965P-DS4, GF 7600gs
Notebook: Ale: ASUS L3800C CPU: P4M 1.8Ghz Graphics: Radeon Mobility 7500

Benutzeravatar
Mike1985
Beiträge: 148
Registriert: 01.05.2005 14:38:11
Wohnort: Lienz / Austria
Kontaktdaten:

Beitrag von Mike1985 » 13.06.2007 13:16:42

tjhooker hat geschrieben: "bootlogd: cannot find console device 136:0 in /dev"
Einfach mal kurz $SUCHMASCHINE bemühen:

Auszug aus http://ubuntuforums.org/showthread.php?p=1631152:
bootlogd seems to be borked:
bootlogd: cannot find console device 136:0 in /dev
Trying this to start it up before udev:
update-rc.d -f bootlogd remove
update-rc.d bootlogd defaults 08
Update: Yeah, that fixed it for me.
Vielleicht funktioniert es dann auch bei dir!

mfg
Debian GNU/Linux SID
Workstation: Cider: C2D 6400, Gigabyte GA-965P-DS4, GF 7600gs
Notebook: Ale: ASUS L3800C CPU: P4M 1.8Ghz Graphics: Radeon Mobility 7500

tjhooker
Beiträge: 41
Registriert: 29.05.2007 09:28:45

Beitrag von tjhooker » 13.06.2007 13:42:01

überzeugt.
Seltsame Verzweigung gibt es beim bootlog.
Schade nur, dass er nicht noch dmesg miteinbezieht *g*

Nochmal Dank. Gruß

Antworten