Cinnamon: arrêt auto quand la batterie est vide

Postez ici toutes vos demandes d’assistance générale concernant le fonctionnement de Linux Mint, qui n'entrent pas dans les autres rubriques.
Répondre
Williame
Messages : 186
Enregistré le : mer. 29 mars 2023 12:34

Cinnamon: arrêt auto quand la batterie est vide

Message par Williame »

Bonjour à tous,

Je cherche un moyen simple d’éteindre l’ordi automatiquement (Cinnamon) quand la batterie atteint 10 ou 15% de charge.
La fonction est présente sur XFCE mais je ne veux plus qu’un seul OS sur les deux ordis ( le mien et celui de ma fille) pour des raisons pratiques.
J’ai installé l’Applet BAM (?) mais elle ne fait que prévenir sans éteindre l’ordinateur et l’applet disparaît avec VLC en plein écran.
Je cherche depuis 2 jours mais je ne trouve pas et j’ai du mal à croire qu’une fonction si basique ne soit pas prévue sur Cinnamon.

Merci pour votre aide
Linux Mint 22 Cinnamon / LENOVO Legion Pro 5 16ARX8 / AMD Ryzen 9 7945HX with Radeon Graphics × 16 / RAM 32GO /
NVIDIA Corporation AD106M [GeForce RTX 4070 Max-Q / Mobile] /
Linux Mint Cinnamon 22 / LENOVO IdeaPad 5 15ABA7 / AMD Ryzen 7 5825U with Radeon Graphics × 8 / 8G0

Avatar du membre
tioker
modérateur
Messages : 1003
Enregistré le : sam. 6 mai 2017 00:33
Localisation : Anjou...Feu !
Contact :

Re: Cinnamon: arrêt auto quand la batterie est vide

Message par tioker »

Bonjour,

J'ai pas le courage de chercher une applet, mais un crontab devrait faire l'affaire.
Je teste la commande et je reviens...

Code : Tout sélectionner

if [[ $(cat /sys/class/power_supply/BAT0/capacity) -lt 100 ]]; then shutdown now ; fi
À TESTER

Cdlt
Distrib : Linux Mint 22.1 Desktop : X-Cinnamon 6.4.6
Kernel : 6.8.0-51-generic CPU : AMD Ryzen 5 5600H with Radeon Graphics RAM : 14Gi
CG : NVIDIA Corporation TU117M [GeForce GTX 1650 Mobile / Max-Q] (rev a1)
Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Vega Mobile Series] (rev c6)

Avatar du membre
cyrille
Administrateur du site
Messages : 13627
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : $ pwd
Contact :

Re: Cinnamon: arrêt auto quand la batterie est vide

Message par cyrille »

La commande de Tioker doit passer, sinon voici un script bash

Code : Tout sélectionner

#!/bin/sh
for battery in /sys/class/power_supply/*bat*
do
        status=`cat $battery/status`
        capacity=`cat $battery/capacity`

        if [ "$status" = Discharging -a "$capacity" -lt 10 ]; then
                logger "Critical battery threshold"
                systemctl poweroff
        fi
done
ou celui là si tu utilises le paquet acpi

Code : Tout sélectionner

#!/bin/sh
acpi -b | awk -F'[,:%]' '{print $2, $3}' | {
    read -r status capacity

    if [ "$status" = Discharging -a "$capacity" -lt 5 ]; then
        logger "Critical battery threshold"
        systemctl poweroff
    fi
}
à positionner sur un cron (par exemple tous les 15 minutes (à toi de définir le temps qui te semble le plus adéquat)

ou définir un règle udev

Code : Tout sélectionner

# Suspend the system when battery level drops to 5% or lower
SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", ATTR{capacity}=="[0-5]", RUN+="/usr/bin/systemctl poweroff"
à sauvegarder dans /etc/udev/rules.d/99-lowbattery.rules , par exemple (au préalable voir si la batterie est bien prise en charge par udev :

Code : Tout sélectionner

udevadm monitor --property
brancher et débrancher le secteur et voir l'output)
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Williame
Messages : 186
Enregistré le : mer. 29 mars 2023 12:34

Re: Cinnamon: arrêt auto quand la batterie est vide

Message par Williame »

Williame a écrit :
mer. 11 déc. 2024 15:00
Bonjour à tous,

Je cherche un moyen simple ...
Merci les amis mais je ne comprends absolument rien à ce que vous me dites !
Cronrab, règle udev, paquet acpi, cron ...
Bon, je regarde tout ca demain
Merci ;)
Linux Mint 22 Cinnamon / LENOVO Legion Pro 5 16ARX8 / AMD Ryzen 9 7945HX with Radeon Graphics × 16 / RAM 32GO /
NVIDIA Corporation AD106M [GeForce RTX 4070 Max-Q / Mobile] /
Linux Mint Cinnamon 22 / LENOVO IdeaPad 5 15ABA7 / AMD Ryzen 7 5825U with Radeon Graphics × 8 / 8G0

Avatar du membre
cyrille
Administrateur du site
Messages : 13627
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : $ pwd
Contact :

Re: Cinnamon: arrêt auto quand la batterie est vide

Message par cyrille »

?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Avatar du membre
tioker
modérateur
Messages : 1003
Enregistré le : sam. 6 mai 2017 00:33
Localisation : Anjou...Feu !
Contact :

Re: Cinnamon: arrêt auto quand la batterie est vide

Message par tioker »

Sinon y'a cet applet:
https://cinnamon-spices.linuxmint.com/applets/view/255
Mais je n'ai pas testé.
Distrib : Linux Mint 22.1 Desktop : X-Cinnamon 6.4.6
Kernel : 6.8.0-51-generic CPU : AMD Ryzen 5 5600H with Radeon Graphics RAM : 14Gi
CG : NVIDIA Corporation TU117M [GeForce GTX 1650 Mobile / Max-Q] (rev a1)
Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Vega Mobile Series] (rev c6)

Avatar du membre
tioker
modérateur
Messages : 1003
Enregistré le : sam. 6 mai 2017 00:33
Localisation : Anjou...Feu !
Contact :

Re: Cinnamon: arrêt auto quand la batterie est vide

Message par tioker »

Williame a écrit :
mer. 11 déc. 2024 19:55
Cronrab, règle udev, paquet acpi, cron ...
Si tu veux faire du crontab, regarde sur internet, c'est bien mieux expliqué que ce que je pourrais dire.
Sinon, en crontab sur root (sudo crontab -e), le bash suivant fonctionne bien.

Code : Tout sélectionner

#!/bin/bash

if [[ $(cat /sys/class/power_supply/BAT0/capacity) -lt 10 ]]
then
    /usr/sbin/shutdown -h now
fi
Dis nous si t'as besoin de détails.
Cdlt
Distrib : Linux Mint 22.1 Desktop : X-Cinnamon 6.4.6
Kernel : 6.8.0-51-generic CPU : AMD Ryzen 5 5600H with Radeon Graphics RAM : 14Gi
CG : NVIDIA Corporation TU117M [GeForce GTX 1650 Mobile / Max-Q] (rev a1)
Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Vega Mobile Series] (rev c6)

Williame
Messages : 186
Enregistré le : mer. 29 mars 2023 12:34

Re: Cinnamon: arrêt auto quand la batterie est vide

Message par Williame »

Bonjour,

Merci pour vos réponses, j'ai tout regardé mais c'est trop chaud pour moi,
je me rabats donc sur l'applet BAMS en espérant que cela suffise .

merci à vous.

PS:
J'ai demandé à Open IA machin truc de m'écrire un script correspondant à mes besoins mais même ça, je ne sais pas comment faire !

Code : Tout sélectionner

Bonjour ! Voici un script simple en Bash qui arrête l'ordinateur lorsque le niveau de batterie atteint un certain seuil. Ce script peut être configuré pour s'exécuter à chaque démarrage.

Script Bash
Créer le script :
Ouvrez un terminal et créez un nouveau fichier de script. Par exemple, vous pouvez l'appeler battery_shutdown.sh :

bash

Copier le code
nano ~/battery_shutdown.sh
Ajouter le code suivant :
bash

Copier le code
#!/bin/bash

# Seuil de décharge de la batterie (en pourcentage)
SEUIL=20

# Obtenir le niveau de batterie actuel
NIVEAU=$(cat /sys/class/power_supply/BAT0/capacity)

# Vérifier si le niveau de batterie est inférieur ou égal au seuil
if [ "$NIVEAU" -le "$SEUIL" ]; then
    echo "Niveau de batterie critique ($NIVEAU%). Arrêt de l'ordinateur."
    shutdown now
fi
Rendre le script exécutable :
Après avoir enregistré le fichier, vous devez le rendre exécutable :

bash

Copier le code
chmod +x ~/battery_shutdown.sh
Configuration pour l'exécution au démarrage
Pour que ce script s'exécute à chaque démarrage, vous pouvez l'ajouter à votre crontab ou à un service systemd.

Option 1 : Utiliser crontab
Ouvrez la crontab pour l'utilisateur courant :
bash

Copier le code
crontab -e
Ajoutez la ligne suivante à la fin du fichier :
bash

Copier le code
@reboot /bin/bash /home/votre_nom_utilisateur/battery_shutdown.sh
Remplacez votre_nom_utilisateur par votre nom d'utilisateur.

Option 2 : Utiliser un service systemd
Créez un fichier de service :
bash

Copier le code
sudo nano /etc/systemd/system/battery_shutdown.service
Ajoutez le contenu suivant :
ini

Copier le code
[Unit]
Description=Arrêter l'ordinateur lorsque la batterie est faible

[Service]
Type=oneshot
ExecStart=/bin/bash /home/votre_nom_utilisateur/battery_shutdown.sh

[Install]
WantedBy=multi-user.target
Activez le service pour qu'il s'exécute au démarrage :
bash

Copier le code
sudo systemctl enable battery_shutdown.service
Remarques
Assurez-vous que le chemin vers le fichier de script est correct dans les deux options.
Vous pouvez ajuster la variable SEUIL dans le script pour définir le niveau de décharge de la batterie qui déclenchera l'arrêt.
Testez le script manuellement pour vous assurer qu'il fonctionne comme prévu avant de le configurer pour qu'il s'exécute au démarrage.
Voilà, vous avez maintenant un script qui arrête votre ordinateur lorsque la batterie atteint un certain niveau de décharge, et il est configuré pour s'exécuter à chaque démarrage.





Linux Mint 22 Cinnamon / LENOVO Legion Pro 5 16ARX8 / AMD Ryzen 9 7945HX with Radeon Graphics × 16 / RAM 32GO /
NVIDIA Corporation AD106M [GeForce RTX 4070 Max-Q / Mobile] /
Linux Mint Cinnamon 22 / LENOVO IdeaPad 5 15ABA7 / AMD Ryzen 7 5825U with Radeon Graphics × 8 / 8G0

Répondre