Wie kann ich den Computer nach Abschluss einer Aufgabe herunterfahren?


8

Normalerweise starte ich einen Download, bevor ich zur Schule gehe.
Welchen Befehl soll ich verwenden, um die erforderlichen Speicherungen automatisch durchzuführen und den Computer auszuschalten, nachdem eine bestimmte Aufgabe abgeschlossen wurde?
(Sagen wir nach der Installation der Updates oder nach dem Herunterladen einer großen Datei.)

Ich habe dies auch unter unix.stackexchange veröffentlicht .


1
Wenn Sie Torrents herunterladen, können einige von ihnen nach Abschluss heruntergefahren werden. Stellen Sie sicher, dass die Fertigstellung 100% bedeutet und nicht gesät wird. Und wenn Sie dies über die Befehlszeile tun, fügen Sie am Ende des Befehls einfach ein && halt hinzu, um den PC automatisch anzuhalten. das && bedeutet nach ausführen.
TheTuxRacer

Fast alle Antworten sind richtig, imho. Je mehr Details Sie über die Art des Downloads und des Programms
angeben, die

Ich denke, die prozessbasierte Antwort in Ihrem Cross-Post ist eine der schönsten und flexibelsten, die ich je gesehen habe. unix.stackexchange.com/a/65060/21070 Möglicherweise können Sie `ps -elf | verwenden grep <somthing_related_to_task>, um die PID zu identifizieren, die am Ende des Prozesses abläuft.
TafT

Antworten:


8

Ich weiß, dass dies Ihre Frage nicht genau beantwortet, aber Sie können sie auch zeitbasiert gestalten. Wenn Sie also glauben, dass Ihr Download in 2 Stunden abgeschlossen sein wird, können Sie einfach den folgenden Befehl eingeben:

shutdown -h +120

8

So gehen Sie einmal vor, damit Sie das Gerät ohne Kennwort herunterfahren können:

Öffnen Sie eine Befehlszeile und geben Sie Folgendes ein:

sudo visudo 

Fügen Sie in der sich öffnenden Datei am Ende die folgende Zeile hinzu:

yourusername ALL=NOPASSWD: /sbin/halt

Beenden Sie dann den Editor und sichern Sie ihn ( Ctrl+ X).

Jetzt können Sie Ihren Computer über die Befehlszeile herunterfahren, z. B. nachdem Sie etwas heruntergeladen haben:

wget UrlOfTheFileYouWantToDownload && sudo halt

4
Um sicherzustellen, dass wget fehlerfrei zurückgegeben wird, ersetzen Sie ";" mit "&&".
David Rivers


3

Andere Antworten sind richtig, aber es fehlt etwas:

wget UrlOfTheFileYouWantToDownload ; sudo halt

vs.

wget UrlOfTheFileYouWantToDownload && sudo halt

Der zweite wird den Computer nur herunterfahren, wenn er wgeterfolgreich zurückkehrt. Der erste führt halt aus, unabhängig davon, ob die wgetRückkehr erfolgreich ist oder fehlschlägt.


2

Sie können die Download-Manager oder Torrent-Clients verwenden, um den PC nach Abschluss herunterzufahren oder anzunehmen, dass Sie die Festplatte defragmentieren. Klicken Sie auf Nach Abschluss herunterfahren, was in den meisten Softwareprogrammen verfügbar ist


2

Ich denke, es hängt sehr davon ab, wie Sie Ihren "Download" durchgeführt haben.

Wenn Sie über ein apt-get-Update sprechen, aktualisieren Sie die Sequenz, als Root setzen Sie Ihre Befehle mit dem && aneinander (die Sequenz wird nur fortgesetzt, wenn keine Fehler aufgetreten sind).

sudo su -
apt-get update && apt-get upgrade && shutdown -h now

Wenn Sie über einen Download sprechen (z. B. mit wget) [reihen Sie die Befehle erneut mit der && -Notation aneinander und stellen Sie sicher, dass die Befehle nur dann in der richtigen Reihenfolge ausgeführt werden, wenn der vorherige Befehl erfolgreich war]

sudo su -
wget -t0 -c http://somedownloadsite/path/file.foo && shutdown -h now

Wenn Ihr Download von einem grafischen Client (GUI) durchgeführt wurde, hängt dies von den Mechanismen dieses Clients zum Ausführen von Skripten nach einem erfolgreichen Download ab.


2
Diese Befehle funktionieren nicht, da sudo su -eine neue Shell gestartet wird und die Befehle nach dem Semikolon erst ausgeführt werden, wenn die neue Shell beendet wird.
Loevborg

Fairer Kommentar. haben die Anweisungen geändert, um anzuzeigen, dass es sich um eine separate Befehlsfolge handelt.
Finley

1

Ich persönlich fand es einfacher, das Original mit gedit einzurichten

yourusername ALL=NOPASSWD: /sbin/halt    

da sudo visudowar mir verwirrend und zeigte die letzte Zeile nicht klar

Also habe ich benutzt

sudo -H gedit /etc/sudoers

dann endete mit einer klaren (für mich) Seite

# User privilege specification
root    ALL=(ALL:ALL) ALL


# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

#includedir /etc/sudoers.d
shantiq ALL=NOPASSWD: /sbin/halt

Ich dachte nur, ich würde erwähnen, dass für den Fall, dass jemand anderes auch ein bisschen verwirrt ist


1

Anstatt die Berechtigungen beim Herunterfahren zu ändern, können Sie Folgendes tun:

sudo bash -c 'apt-get update; apt-get dist-upgrade; shutdown -h now'

Führen Sie dazu eine Bash-Eingabeaufforderung als Root aus, die die Elemente in der Liste mit einfachen Anführungszeichen ausführt und dann beendet. Der Vorteil dieser Methode ist, dass Ubuntu Ihre anfängliche sudoAuthentifizierung nach einiger Zeit vergisst (abhängig von der festgelegten Zeitüberschreitung - standardmäßig 15 Minuten) und jemand, der auf Ihren Computer stößt, nur den aktuellen Befehl stoppen und keinen neuen ausführen kann. Auch für jeden Gebrauch zu sagen su, versuchen Sie :

sudo -s

Was ist, wenn das Netzwerk für kurze Zeit ausfällt und apt-get seine Arbeit nicht erledigt?
Quamis

1
Ich würde annehmen, dass Sie immer noch herunterfahren möchten. Wenn eine Stufe der Befehle in -c fehlschlägt, werden die anderen fortgesetzt, da ich anstelle des && ein Semikolon verwendet habe (alle mit && verketteten Befehle funktionieren nur, wenn die einzelnen Befehle der Reihe nach erfolgreich sind).
Calcipher

0

Ich glaube nicht, dass Sie das können ... Sie können auf keinen Fall wissen, wann eine bestimmte Anwendung ihre Sache beendet hat.

Früher habe ich es getan sudo su; sleep 3600; halt;


Warum die Abstimmung ablehnen?
Quamis

Jemand war wahrscheinlich nicht einverstanden mit dem Teil "Es gibt keine Möglichkeit zu wissen"?
Belacqua
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.