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 .

El Burro
quelle
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
binW
quelle
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
AK76
quelle
4
Um sicherzustellen, dass wget fehlerfrei zurückgegeben wird, ersetzen Sie ";" mit "&&".
David Rivers
3

Zum Herunterfahren nach dem Update können Sie dieses Python-Skript verwenden: http://kotbcorp.blogspot.com/2009/06/shutdown-after-update-in-ubuntu.html

Zum Herunterfahren nach dem Download benutze ich diesen Befehl:

wget http://somehwere.com/path/to/some.file && halt
aneeshep
quelle
2
Denken haltSie daran, dass Superuser-Berechtigungen erforderlich sind. Sie sollten diese also ausführen, sudo -sbevor Sie die Befehle eingeben.
Loevborg
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.

David Oneill
quelle
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

FOSS DIVERSER
quelle
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.

Finley
quelle
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

Shan
quelle
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
Verschlüsseln
quelle
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;

Quamis
quelle
Warum die Abstimmung ablehnen?
Quamis
Jemand war wahrscheinlich nicht einverstanden mit dem Teil "Es gibt keine Möglichkeit zu wissen"?
Belacqua