So führen Sie ein Skript nach oder vor dem Ruhezustand aus

7

Ich möchte 4 Befehle vor einem Ruhezustand und weitere 2 Befehle nach dem Update ausführen. Ist es auch möglich, die Zeit / die Reihenfolge der einzelnen Befehle festzulegen. Wenn ja, können Sie dann erklären, wie?

user128712
quelle

Antworten:

7

Sie können Befehle vor und nach dem Ruhezustand oder der Unterbrechung ausführen (beachten Sie, dass es einen Unterschied gibt; der Ruhezustand befindet sich auf der Festplatte, die Unterbrechung im Speicher), indem Sie ein Skript erstellen in /etc/pm/sleep.d:

#!/bin/bash

case "$1" in
  hibernate)
    # put commands to run on hibernation here
    ;;
  thaw)
    # put commands to run when returning from hibernation here
    ;;
  suspend)
    # put commands to run on suspend here
    ;;
  resume) 
    # put commands to run when returning from suspension
    ;;
esac

Der Dateiname des Skripts bestimmt die Reihenfolge, in der die Skripte im Vergleich zu anderen Skripten in sleep.d ausgeführt werden. Innerhalb Ihres Skripts werden Ihre Befehle in der Reihenfolge ausgeführt, die Sie dann in das Skript eingegeben haben.

David Edwards
quelle
Können Sie erklären, warum der Dateiname 'xxname' sein muss, wobei x eine Zahl ist? Was bedeutet x?
user128712
2
Die Dateien werden in alphanumerischer Reihenfolge sortiert (und daher ausgeführt). Die Nummer ist nicht erforderlich, bietet jedoch eine Möglichkeit, die Reihenfolge der Skripte zu steuern.
David Edwards
Bitte beachten Sie, dass jeder Befehl in der xxname- Datei als ausgeführt wird root. Also , wenn Sie stoppen müssen / beginnen , einige Nicht-Systemanwendung (zB Dropbox) laufen entsprechenden Befehl wie gewohnt Benutzer mit Hilfe von su(zB su --command 'dropbox start' user.
flaz14
2
Mit der Änderung zu systemd ist diese Antwort nur für 14.04 und früher korrekt. Weitere Informationen finden Sie unter Starten eines Skripts nach dem Anhalten in Ubuntu 15.04 (systemd) und man systemd-sleep für spätere Versionen.
AgentB