Zeitweiliges Anhalten / Ruhezustand des Skripts verhindern?

7

Gibt es eine Möglichkeit, zu verhindern, dass ein Skript vorübergehend angehalten / in den Ruhezustand versetzt wird?

Ich möchte, dass der Bildschirm bei Bedarf in den Energiesparmodus wechselt, aber der Computer stoppt nicht. Caffeineerlaubt dies nicht: es deaktiviert alles oder nichts.

Warum will ich das machen? Weil ich manchmal eine große Menge von Dateien von einem Server über FTP herunterlade. Diese Downloads können Stunden dauern.

Juan Simón
quelle
Siehe diese Frage ( askubuntu.com/questions/576525/… ). Sie können das dort bereitgestellte Skript verwenden, um das Anhalten zu ersetzen, während ein Upload oder Download ausgeführt wird. Ändern Sie wlan0 in eth0 oder verwenden Sie beide, wenn dies zutrifft.
Dhiya

Antworten:

6

Erstellen Sie Folgendes, um den Ruhezustand zu verhindern /var/run/do-not-hibernate:

sudo touch /var/run/do-not-hibernate

Die Datei /usr/lib/pm-utils/sleep.d/000kernel-changemacht diese Arbeit. Wenn Sie suspend deaktivieren müssen, erstellen Sie dafür eine neue Datei, z. B /etc/pm/sleep.d/000_prevent_suspend_hibernate.:

#!/bin/sh
# Prevents the machine from suspending or hibernating when
# the file /var/run/do-not-hibernate-or-suspend exist
case "$1" in
  suspend|hibernate)
    [ -f /var/run/do-not-hibernate-or-suspend ] && exit 1
    ;;
esac

Machen Sie es ausführbar:

sudo chmod +x /etc/pm/sleep.d/000_prevent_suspend_hibernate

Wenn Sie verhindern möchten, dass der Computer angehalten oder in den Ruhezustand versetzt wird, erstellen Sie eine Datei:

sudo touch /var/run/do-not-hibernate-or-suspend

Nach dem Neustart oder Entfernen dieser Datei funktioniert das Anhalten und der Ruhezustand erneut.

Lekensteyn
quelle
Vielen Dank. Ich werde Ihr Skript mit einer kleinen Änderung testen. Anstatt die Datei zu erstellen /var/run/do-not-hibernate-or-suspend, teste ich die Existenz eines mit " pidof lftp" aktiven lftp-Prozesses .
Juan Simón
Es funktioniert nicht. Ich denke, diese Skripte werden nicht verwendet. Weil das pm-suspend.log Zeilen wie folgt anzeigt: " /usr/lib/pm-utils/sleep.d/...". Ich werde testen, wie das Skript in diesen Ordner verschoben wird:/usr/lib/pm-utils/sleep.d/
Juan Simón
1
Ich dachte, das exit 1würde den Ruhezustand stoppen, aber das tut es nicht. Ich teste jetzt mit:. "${PM_FUNCTIONS}" ... pidof lftp && inhibit
Juan Simón
0

Fügen Sie einfach eine Datei hinzu. /etc/pm/sleep.d In dieser Datei prüfen Sie, ob das Anhalten zulässig sein soll. Wenn nicht einfach mit beenden exit 1.

Zum Beispiel:

tmp_start=...
tmp_stop=...

if [ $((tmp_stop)) -gt $((current_date)) -a $((tmp_start)) -lt $((current_date)) ]; then
    logger $0: Currently RECORDING. No Suspend!
    exit 1;
fi
JPT
quelle