Ich verwende ein Skript, um inkrementelle Sicherungen einer btrfs-Partition von einer Festplatte auf eine andere zu erstellen.
Das Skript wird von cron.weekly zu einer beliebigen Tageszeit gestartet.
Wenn ich das System herunterfahre, während das Skript ausgeführt wird, treten Probleme auf, da alte Sicherungen entfernt und neue nicht erstellt wurden.
Gibt es eine Möglichkeit, das System so einzurichten, dass es wartet, bis das Skript beendet ist?
Ich benutze Ubuntu 16.04 mit systemd.
sudo
Benutzer vorgenommen wird. Ich werde eine frühere Antwort für GUI verknüpfen. Lassen Sie mich wissen, wenn Sie es an Ihre Bedürfnisse anpassen möchtensystemd-inhibit
ein bisschen einfacher für die Augen? >: - DAntworten:
Für Ubuntu 16.04+ mit systemd (Standardeinstellung).
===
Prüfung:
===
Es gibt 7 Schlösser :
sleep
Verhindert das Anhalten des Systems und den Ruhezustand, die von (nicht privilegierten) Benutzern angefordert werdenshutdown
Verhindert das Ausschalten und Neustarten des Systems auf hoher Ebene, das von (nicht privilegierten) Benutzern angefordert wirdidle
verhindert, dass das System in den Leerlaufmodus wechselt, was je nach Konfiguration möglicherweise zu einem automatischen Anhalten oder Herunterfahren des Systems führt.handle-power-key
Verhindert die einfache (dh logind-interne) Behandlung des System-Power-Hardware-Schlüssels, sodass (möglicherweise nicht privilegierter) externer Code stattdessen das Ereignis behandeln kann.handle-suspend-key
sperrt die Low-Level-Behandlung des System-Hardware-Suspend-Schlüssels.handle-hibernate-key
sperrt die Low-Level-Behandlung des Systemhardware-Ruhezustandsschlüssels.handle-lid-switch
sperrt den Low-Level-Umgang mit dem System-Hardware-Deckelschalter.Sie möchten wahrscheinlich auch verhindern
suspend
,idle
undhibernate
.Beispiel mit "Paketmanager" :
Ähnlich können Sie Ihre Version codieren und am Ende dieses Skripts ein "Herunterfahren" hinzufügen (oder eine Möglichkeit hinzufügen, um zu bestimmen, dass das Herunterfahren die nächste Aktion sein muss).
quelle
In BackInTime verwende ich verschiedene DBus-Methoden, um an allen wichtigen DEs zu arbeiten. Einziger Wermutstropfen ist, dass dies nicht funktioniert,
root
daroot
es keine gibtdbus.SessionBus
.quelle