Was genau tut 'reboot -f'

hallo leute

ich arbeite auf einem rechner mit linux kernel 2.4.25 (basis suse). hätte eine frage zum reboot-befehl: gibt man beim reboot die option „-f“ mit, so steht in der man-page lapidar „force halt or reboot, don’t call shutdown“. ist zwar gut und schön, nur was genau ist die folge, wenn kein shutdown ausgeführt wird? was passiert mit den prozessen und vor allem mit offenen netzwerkverbindungen?

grund für die anfrage: auf diesem rechner läuft ein programm, dass mehrere verbindungen zu einer oracle-datenbank offen hat (javaprogramme, verbindung über jdbc-oci). normalerweise erkennt die oracle ja, dass eine verbindung abgerissen ist und baut die sessions ab. wird der client aber mit „reboot -f“ durchgestartet, bleiben die sessions bestehen bzw. werden erst nach relativ langer zeit abgebaut. ich würde nun gerne herausfinden, was der grund dafür ist.

erwin

ps: ja, ich weiss, dass man normalerweise kein „reboot -f“ macht. ist auch nicht wirklich üblich hier. wir wollten lediglich mal einen test machen, wie sich die anwendung verhält, wenn der client mit einem stromausfall abbricht. die erste idee war halt „na, da machen wir einfach ein reboot -f, dass sollte das selbe wie ein stromausfall sein, ohne dass das netzteil dabei belastet wird und auch keine probleme mit den platten etc. hervorruft“. gesagt, getan, nur dass die db-verbindungen im oracle offen blieben und beim neustart des systems die ressourcen am db-server zur neige gingen.

Hallo,

hätte eine frage zum reboot-befehl: gibt man beim
reboot die option „-f“ mit, so steht in der man-page lapidar
„force halt or reboot, don’t call shutdown“. ist zwar gut und
schön, nur was genau ist die folge, wenn kein shutdown
ausgeführt wird? was passiert mit den prozessen und vor allem
mit offenen netzwerkverbindungen?

Wenn ich das richtig verstehe, bekommen die Prozesse nicht erst das KILL signal (wie bei einem normalen shutdown), sondern sie werden einfach nicht mehr ausgeführt, und der Kernel überschreibt den Speicher beim reboot.

grund für die anfrage: auf diesem rechner läuft ein programm,
dass mehrere verbindungen zu einer oracle-datenbank offen hat
(javaprogramme, verbindung über jdbc-oci). normalerweise
erkennt die oracle ja, dass eine verbindung abgerissen ist und
baut die sessions ab. wird der client aber mit „reboot -f“
durchgestartet, bleiben die sessions bestehen bzw. werden erst
nach relativ langer zeit abgebaut.

Der Handler für das KILL-Signal wurde nicht ausgeführt => die Sessions sterben erst durch ein timeout.

Grüße,
Moritz
P.S. die angemessen Benutzung der Shift-Taste macht Postings deutlich leichter lesbar.

hi Moritz

danke für die antwort - klingt logisch und nachvollziehbar.

erwin