Existe-t-il un moyen d'empêcher la suspension/hibernation temporaire d'un script?
Je souhaite que l'écran passe en mode d'économie d'énergie, le cas échéant, mais l'ordinateur ne s'arrête pas. Caffeine
n'autorise pas ceci: il désactive tout ou rien.
Pourquoi je veux faire ça? Parce que parfois je télécharge une énorme quantité de fichiers d'un serveur via FTP. Ces téléchargements peuvent prendre des heures à compléter.
Pour éviter l'hibernation, créez /var/run/do-not-hibernate
:
Sudo touch /var/run/do-not-hibernate
Le fichier /usr/lib/pm-utils/sleep.d/000kernel-change
effectue ce travail. Si vous devez désactiver la suspension, créez un nouveau fichier pour cela, par exemple, /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
Rendez-le exécutable:
Sudo chmod +x /etc/pm/sleep.d/000_prevent_suspend_hibernate
Si vous souhaitez empêcher la machine de suspendre ou d'hiberner, créez un fichier:
Sudo touch /var/run/do-not-hibernate-or-suspend
Après le redémarrage ou la suppression de ce fichier, la suspension et l'hibernation fonctionnent à nouveau.
Ajoutez simplement un fichier à /etc/pm/sleep.d
Dans ce fichier, vérifiez si la suspension doit être autorisée. Sinon, quittez simplement avec exit 1
.
Par exemple:
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