ubuntuusers.de

shutdown temporär sperren

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

0.0

Anmeldungsdatum:
4. Februar 2008

Beiträge: 18

Hi,

Szenario: anacron startet wichtigen Prozess. Benutzer kommt, schaltet PC aus. Wichtiger Prozess wird beendet...

Ich suche also nach einer Möglichkeit, das Herunterfahren des Systems temporär (solange, bis der Prozess fertig ist) zu verhindern.

Die Möglichkeit shutdown, halt, reboot, und init durch eigene Skripte, die erst eine Prüfung durchführen gäbe es zwar, ist aber imho doch sehr unschön.
Da muss es doch was besseres geben?

Gruß

encbladexp Team-Icon

Ehemaliger
Avatar von encbladexp

Anmeldungsdatum:
16. Februar 2007

Beiträge: 17525

Wie wäre es mit einem Script im Runlevel 0 oder Runlevel 6? Das muss nur am anfang gestartet werden, vor den anderen Scripts, und könnte den Vorgang solange pausieren bis es gehen soll...

mfg Betz Stefan

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4694

Wohnort: Berlin

Ich würde mal behaupten, dass geht so nicht, weil irgendwer, wahrscheinlich der initd bzw. etwas Äquivalentes, am Ende TERM und KILL Signale verschicken wird, um alles zu beenden. Also auch Shutdown-Skripte, die aus irgend welchen Gründen hängen. Man kann von aussen ja nicht sehen, ob da was kaputt ist, oder absichtlich blockiert.

jerik

Avatar von jerik

Anmeldungsdatum:
19. August 2006

Beiträge: 425

gegen den power-off knopf am PC ist man einfach machtlos...

Sid_Burn

Anmeldungsdatum:
23. Oktober 2004

Beiträge: 2159

jerik hat geschrieben:

gegen den power-off knopf am PC ist man einfach machtlos...

Nope, man kann die Kabel zum Mainboard entfernen.

tobiasschulz

Anmeldungsdatum:
31. Mai 2006

Beiträge: Zähle...

Wohnort: /root/

Vielleicht könnte man den Shutdown per GUI so blocken (ist aber recht unsauber):

chmod -x /sbin/shutdown /sbin/halt /sbin/init /sbin/reboot (unausführbar)
...
wichtiger Prozess
...
chmod +x /sbin/shutdown /sbin/halt /sbin/init /sbin/reboot (wieder ausführbar)

Hat aber den nachteil, dass es (habe es nicht probiert) Probleme beim nächsten booten geben könnte, wenn das System per Hardware-Shutdown vor dem 2. chmod abgeschaltet wird, da /sbin/init dann keine ausführbare Datei ist.

Barabbas

Avatar von Barabbas

Anmeldungsdatum:
31. März 2007

Beiträge: 1651

Wohnort: Münster

ich habe in solchen Fällen immer einen Zettel an den Monitor geklebt "bitte nicht ausschalten". Eine sehr analoge und meistens funktionierende Vorgehensweise. Falls die Mitbewohner über eingeschränkte oder gar keine Lesefähigkeiten verfügen, kann man diesen Satz auch mit einem Mikrofon aufnehmen und in Schleife abspielen - dabei steigt allerdings die Gefahr, dass die Mitbewohner auf Grund der enervierenden Wiederholungen erst Recht den PC ausschalten werden.

Auch das mechanische Verriegeln des Zimmers, in dem der PC steht, soll oft schon ein Herunterfahren verhindert haben.

In diesem Sinne:

alles Gute

brb

P.S.
Analog zum entfernen der "Ausführbarkeit" könnte man auch den Besitzer ändern, oder? Das würde wahrscheinlich auch die von tobiasschulz geschilderte Problematik nach einem Neustart umgehen, da Init (soweit ich weiß) ohnehin dem root gehört. Es sei denn natürlich, der jeweilige Benutzer verfügt über root Rechte, dann bringt das Ganze auch wieder nichts.

0.0

(Themenstarter)

Anmeldungsdatum:
4. Februar 2008

Beiträge: 18

Ich seh schon, das wird wohl eine Frickelllösung.

jerik: Der Resetknopf ist eigentlich keine Gefährdung, da der PC idR. nur von Leuten genutzt wird, denen die Tatsache bekannt ist, dass da eventuell noch was läuft.
Gegen Stromausfall dagegen könnte man nichts tun, natürlich genausowenig, wenn man den Prozess so starten würde, das ist klar.

tobiasschulz: Eben wegen der Möglichkeit eines Stromausfalls, ist mir das gar nicht so recht.

Barabbas: Es geht aber viel mehr darum, das unbeabsichtigte Ausschalten zu verhindern. Dieses geschieht idR. von Gnome aus, allerdings auch möglich, dass selten mal aus nem Terminal mit sudo halt oder dergleichen.
Ich werd mich mal einlesen, wie genau Gnome da vorgeht und wo man eingreifen könnte.

encbladexp: Du meinst nach init.d und dann gelinkt, und darin ein sleep, und immer wieder pollen, ob der Prozess fertig ist? Ich denke das ist problematisch, wie Marc schon sagte.

Dank und Grüße

tobiasschulz

Anmeldungsdatum:
31. Mai 2006

Beiträge: 339

Wohnort: /root/

Erstell dir doch einen User, den du meinetwegen "shutdown" nennst. Dem weist du /sbin/halt reboot, und shutdown zu. Kein anderer darf sie ausführen. Zum gewollten shutdown erstellst du dir ein script, was so etwas ausführt:

su shutdownuser -c "halt"

Ohne dieses Ding kann man also überhaupt nicht runterfahren, weil man das Passwort dieses shutdownusers nicht kennt.

Wenn es nur root darf, ist es keine Lösung, weil der GDM als root läuft. Deshalb darf es root nicht dürfen, ohne ein chmod auszuführen.

e1bart0 Team-Icon

Avatar von e1bart0

Anmeldungsdatum:
12. Mai 2007

Beiträge: 927

Wohnort: München

0.0 hat geschrieben:

Barabbas: Es geht aber viel mehr darum, das unbeabsichtigte Ausschalten zu verhindern. Dieses geschieht idR. von Gnome aus, allerdings auch möglich, dass selten mal aus nem Terminal mit sudo halt oder dergleichen.

Sperre den PC doch einfach. Dann wird der PC von GNOME nicht heruntergefahren.

tobiasschulz

Anmeldungsdatum:
31. Mai 2006

Beiträge: 339

Wohnort: /root/

e1bart0 hat geschrieben:

0.0 hat geschrieben:

Barabbas: Es geht aber viel mehr darum, das unbeabsichtigte Ausschalten zu verhindern. Dieses geschieht idR. von Gnome aus, allerdings auch möglich, dass selten mal aus nem Terminal mit sudo halt oder dergleichen.

Sperre den PC doch einfach. Dann wird der PC von GNOME nicht heruntergefahren.

Viel zu einfach, passt sicher nicht auf jede Situation 😉

Hello_World

Anmeldungsdatum:
13. Juni 2006

Beiträge: 3620

tobiasschulz hat geschrieben:

Wenn es nur root darf, ist es keine Lösung, weil der GDM als root läuft. Deshalb darf es root nicht dürfen, ohne ein chmod auszuführen.

Ohne aufwändige Lösungen wie SELinux darf root aber alles.

tobiasschulz

Anmeldungsdatum:
31. Mai 2006

Beiträge: 339

Wohnort: /root/

Hello World hat geschrieben:

tobiasschulz hat geschrieben:

Wenn es nur root darf, ist es keine Lösung, weil der GDM als root läuft. Deshalb darf es root nicht dürfen, ohne ein chmod auszuführen.

Ohne aufwändige Lösungen wie SELinux darf root aber alles.

Nur, wenn er sich selbst mit einem davor ausgeführtem chmod die ausführbarkeitsrechte wiedergibt. Er soll sie aber gerade nicht haben, und der GDM wird kein chmod ausführen. Ohne das kann auch root keine Datei ausführen. 😀

jerik

Avatar von jerik

Anmeldungsdatum:
19. August 2006

Beiträge: 425

Sid Burn hat geschrieben:

jerik hat geschrieben:

gegen den power-off knopf am PC ist man einfach machtlos...

Nope, man kann die Kabel zum Mainboard entfernen.

Is mir dann später auch in den Kopf gekommen. Jedoch kann man immer noch einfach den Kaltstecker ziehen und gut is.... Naja, davon gehen wir hier einfach mal nicht aus 😉

adun Team-Icon

Avatar von adun

Anmeldungsdatum:
29. März 2005

Beiträge: 8606

Die richtige Lösung: Komplett auf upstart wechseln
Die einfachste Lösung: den GDM shutdown Befehl auf ein eigenes Skript umlenken, das erst anacron überprüft und dann den shutdown ausführt. (das hilft nicht gegen manuelles Ausführen von shutdown im Terminal, wenn das auch noch gewünscht ist, müssten die Rechte angepasst werden)

Antworten |