Linux in 30 Sekunden herunterfahren?

8

Einfache Frage: Mit welchen Parametern kann ein Computer unter Linux / OSX in 30 Sekunden heruntergefahren werden? Ich habe immer Windows ausgeführt, wohin ich gehen würde, shutdown -s -t 30aber die Parameter sind unterschiedlich. Ich habe es hier nachgeschlagen, aber Sie können einen Computer nur zu einer bestimmten Zeit (z. B. 8:00 Uhr) und nicht in einer bestimmten Anzahl von Sekunden herunterfahren.

icnhzabot
quelle

Antworten:

8

In OS X können Sie mit dem folgenden Befehl in einer Minute herunterfahren:

sudo shutdown -h +1

AFAIK, mit diesem Befehl können keine Sekunden statt Minuten angegeben werden.

Sie können auch neu starten, indem Sie -ranstelle von verwenden -h.


BEARBEITEN:

Wie Sie in Ihrem Kommentar erwähnt haben, können Sie programmgesteuert eine Verzögerung hinzufügen und das System dann sofort mit herunterfahren

shutdown -h now

Beachten Sie jedoch, dass für diesen Befehl Root-Zugriff erforderlich ist.

Austin
quelle
meh. Also keine Dezimalstellen verwenden. Ich nehme an, das ist in Ordnung, ich habe mich gefragt, weil ich versuche, an einer plattformübergreifenden Java-Anwendung zu arbeiten, die einen Computer herunterfahren kann. Ich konnte es also 30 Sekunden lang schlafen lassen, bevor ich es sofort herunterfuhr. Aber würde sudo shutdown -hder Computer ohne absichtliche Verzögerung heruntergefahren werden?
@icnhzabot sudo shutdown -h nowwürde den Computer ohne Vorwarnung sofort herunterfahren.
Austin
OK danke. Also für Root-Zugriff sollte ich sudo shutdown -h nowrichtig machen?
icnhzabot
@icnhzabot Das funktioniert bei einem automatisierten Skript / Programm nicht, da der Benutzer in der Befehlszeile zur Eingabe seines Administratorkennworts aufgefordert wird. Sie müssten Ihr Skript als root ausführen und einfach aufrufen shutdown -h now. Wenn Sie dabei Hilfe benötigen, sollten Sie eine neue Frage stellen (vorausgesetzt, Sie finden die Antwort nicht anderswo). Vergessen Sie auch nicht, die beste Antwort hier als "akzeptiert" zu markieren, wenn sie Ihre Frage beantwortet hat.
Austin
3

Mit den Basisaufrufen sehe ich keine Möglichkeit, dies mit Sekunden zu tun, aber es sieht so aus, als könnten Sie es mit Minuten tun:

time Time is the time at which shutdown will bring the system down and
     may be the word now (indicating an immediate shutdown) or specify
     a future time in one of two formats: +number, or yymmddhhmm,
     where the year, month, and day may be defaulted to the current
     system values.  The first form brings the system down in number
     minutes and the second at the absolute time specified.

Mit anderen Worten:

shutdown -h +1

Wenn Sie es in 1 Minute herunterfahren möchten.


quelle
Weißt du, ob es mit .5 funktionieren würde?
Hier liegt ein Fehler vor - die -rOption ist ein Neustart, kein Herunterfahren. Sie müssen zum -hHerunterfahren verwenden.
Austin
@Austin ugh, habe diese Inline behoben.
3

Wie bereits erwähnt, der Befehl

sudo shutdown -h +1

Fügt eine Minute hinzu.

Wenn Sie es in Sekunden oder Stunden oder etwas ganz Bestimmtem tun möchten, können Sie Folgendes tun:

shutdown -h `date --date "now + 60 seconds"`

BEARBEITEN: Das Obige funktioniert nicht mehr mit neueren Ubuntu-Builds. Vielen Dank für den Hinweis auf @zitrax. Mein Fehler, du hast recht.

Aber Sie können es immer noch tun, aber es scheint vielleicht auf die nächste Minute.

sudo shutdown -h `date --date "now + 10 minutes" "+%H:%M"`

Was etwas sinnlos ist, wenn der Parameter + m einfacher einzugeben ist .... ahhh na ja.

Matt H.
quelle
Funktioniert nicht (zumindest unter Linux), dies gibt die Zeit in einem anderen Format als erwartet an.
Zitrax
@Zitrax, nur weil es in Ihrem Fall nicht funktioniert hat, heißt das nicht, dass es nicht in allen Linux-Varianten funktioniert. Ich möchte, dass Sie auch den Backtick "unterscheidet sich von einem einzelnen Anführungszeichen" beachten. Ich vermute, deshalb hat es bei Ihnen nicht funktioniert. Dies funktioniert absolut in allen Versionen von Ubuntu seit mindestens 10.04. Und da Ubuntu auf Debian basiert, wird es auch darauf funktionieren. Es könnte konstruktiver sein, zu sagen "Funktioniert nicht an ...", statt abzustimmen und eine pauschale Erklärung abzugeben. Linux ist ein Oberbegriff, keine Version. Aber ich denke tatsächlich, dass Sie es falsch geschrieben haben. Versuch es noch einmal.
Matt H
1
Ich habe es auf meinem Heimcomputer erneut versucht und es funktioniert dort auch nicht. Ich weiß, wie Backticks funktionieren. Also habe ich Ubuntu 13.10 und Kubuntu 13.10 ausprobiert. Könnte es sein, dass ich ein anderes Gebietsschema verwende? Die Ausgabe von date --date "now + 60 seconds"für mich ist lör 22 feb 2014 21:25:03 CET und wenn ich das zusammen mit dem Herunterfahren verwende, wird "ungültiger Zeitwert" (ins Englische übersetzt) ​​ausgegeben. Ihre Aussage, dass die von Ihnen geschriebene Version in allen Ubuntu-Versionen absolut funktioniert, ist einfach falsch. Wenn ich das bisherige Format spezifiziere, funktioniert es jedoch wie folgt : date --date "now +60 seconds" +%H:%M.
Zitrax
Ich habe versucht, zum englischen Gebietsschema zu wechseln, aber es hat auch nicht funktioniert. Ich bin mir also nicht sicher, warum es bei Ihnen funktioniert.
Zitrax
Muss Ihre Version des Befehls shutdown sein. Die mit Ubuntu gelieferte Version sieht möglicherweise anders aus. Es wurde von Scott Remnant von Conanical verfasst. Es muss sein, dass es einen größeren Bereich von Datumseingabewerten akzeptiert. Funktioniert für mich und mindestens 3 andere, die gestimmt haben.
Matt H