web-dev-qa-db-fra.com

Comment désactiver temporairement veille et veille prolongée à partir de la ligne de commande

Il semble qu'il existe de nombreuses façons dont les paramètres d'Ubuntu peuvent être manipulés de façon permanente afin de dormir lorsque vous le souhaitez, tant que les conditions prédéterminées sont remplies. Cependant, ce sont des solutions plus permanentes qui ne prennent pas en compte les tâches rares susceptibles de vouloir mettre temporairement en œuvre une stratégie standard. Le problème que je rencontre est que j'ai un très long script en cours d'exécution pour effectuer certaines sauvegardes et que je ne souhaite pas que l'ordinateur soit en veille ou en veille prolongée pendant l'exécution de ce processus, ce qui prend généralement entre 30 et 50 minutes. Par conséquent, y a-t-il une commande que je pourrais inclure dans mon script de sauvegarde qui empêcherait le système de rester en veille/veille prolongée pendant l'exécution du script de sauvegarde et une commande permettant également de restaurer la stratégie d'alimentation normale par défaut une fois la sauvegarde terminée?

quelque chose comme

#!/usr/bin/bash
#disable normal powerpolicy
disable-power-policies
backup /dev/sda /dev/sdb /dev/fioa /dev/fiob
#enable power policies.
enable-power-policies
9
Rusty Weber

Sur Ubuntu 16.04 LTS, j’ai utilisé avec succès les éléments suivants pour désactiver la suspension:

Sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

Et ceci pour le réactiver:

Sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target
8
Dustin Kirkland

J'ai eu exactement le même problème l'année dernière pour des sauvegardes qui ont pris plusieurs heures!

Vous pouvez essayer Keep.Awake https://launchpad.net/keep.awake Il peut surveiller la charge de la CPU, le trafic réseau et l'activité des utilisateurs pour des seuils minimum.

Je n'ai toujours pas eu le temps de créer un cliché ou un deb pour cela. Cependant temporairement, vous pouvez télécharger le programme à partir du tableau de bord ici

La version actuelle est stable et fonctionne sur toutes les versions Ubuntu du 14.04 au 16.04. Cela dit, je l’améliore continuellement et j’ajouterai de nouvelles fonctionnalités.

Cela fonctionne comme une commande appropriée. Tapez --help pour voir une liste complète de ce qui peut être fait. Les exemples ci-dessous ne sont que quelques-uns:

./keepawake.py --help

Pour s'exécuter de manière interactive:

./keepawake.py

Pour exécuter en tant que service en arrière-plan:

Nohup ./keepawake.py -r > /dev/null 2>&1 &

Pour exécuter le service d’arrière-plan et définir 15 minutes (900 secondes) comme durée d’inactivité de l’activité utilisateur avant de déterminer que l’utilisateur est inactif:

Nohup ./keepawake.py -u 900 -r > /dev/null 2>&1 &

Pour exécuter le service d’arrière-plan et définir la charge minimale du processeur sur 13%:

Nohup ./keepawake.py -c 13 -r > /dev/null 2>&1 &

Pour exécuter le service d’arrière-plan et définir le trafic réseau minimal sur 5 Ko (5 120 octets):

Nohup ./keepawake.py -s 5120 -r > /dev/null 2>&1 &

Pour exécuter les trois paramètres ci-dessus (réseau, CPU, utilisateur inactif) en une fois:

Nohup ./keepawake.py -s 5120 -c 13 -u 900 -r > /dev/null 2>&1 &
3
DanglingPointer

Vous pouvez utiliser gsettings dans votre script pour désactiver la suspension automatique des paramètres d'alimentation et rétablir le comportement par défaut du paramètre d'alimentation.

Voici une configuration simple qui récupère d'abord le délai d'attente actuel pour le mettre en veille, puis le réactive après une tâche quelconque.

#!/bin/bash   

#get the current timeout for automatic suspend both for on battey power and when plugged in.
a=$(gsettings get org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout)
b=$(gsettings get org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout)


#Disable automatic suspend 
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 0
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout 0

#Your task here
sleep 5

#Enable the automatic suspend
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout $a
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout $b
3
g_p

Voici comment faire cela sous Xfce. (Merci à g_p pour leur réponse qui a donné le coup d'envoi à la mienne.)

#!/bin/bash

# Grab current sleep timeout on battery and ac
a=$(xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-ac)
b=$(xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-battery)

# Set sleep to never on battery and ac
xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-ac -s 14
xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-battery -s 14

# Your task here
sleep 5

# Reset sleep to what it was before on battery and ac
xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-ac -s "$a"
xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-battery -s "$b"
1
jbrock