logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 31-05-2021 20:55:35

R136a1
Membre
Distrib. : Debian 12
Inscription : 07-06-2020

[Résolu] Service systemd : bad unit file setting

Salut
J'espère être dans la bonne section...

voilà, j’ai suivi un tuto pour créer un service qui limite la charge de la batterie de mon portable Asus. Ça fonctionne très bien sous Ubuntu 20.04 mais j’ai un message erreur au démarrage du service sous Debian 10:

sudo systemctl start battery-charge-threshold.service
Failed to start battery-charge-threshold.service: Unit battery-charge-threshold.service has a bad unit file setting.
See system logs and ‹ systemctl status battery-charge-threshold.service › for details.


Le problème c’est que le message de systemctl status n’est pas du tout explicite pour moi:

systemctl status battery-charge-threshold.service
● battery-charge-threshold.service - Set the battery charge threshold
Loaded: bad-setting (Reason: Unit battery-charge-threshold.service has a bad unit file setting.)
Active: inactive (dead)


Je me doute qu’il doit y avoir une erreur dans le fichier battery-charge-threshold.service mais laquelle?..
Voici le contenu du fichier:

[Unit]
Description=Set the battery charge threshold
After=multi-user.target
StartLimitBurst=0

[Service]
Type=oneshot
Restart=on-failure
ExecStart=/bin/bash -c ‹ echo 60 > /sys/class/power_supply/BAT0/charge_control_end_threshold ›

[Install]
WantedBy=multi-user.target



Curieusement, malgré ce message erreur qui indique que le service n’a pas démarré, la charge de la batterie se limite bien à 59%.
Merci pour votre aide!

Dernière modification par R136a1 (31-05-2021 23:09:17)

Hors ligne

#2 31-05-2021 23:08:16

R136a1
Membre
Distrib. : Debian 12
Inscription : 07-06-2020

Re : [Résolu] Service systemd : bad unit file setting

Bon, j'ai trouvé sur un site cette commande que je ne connaissais pas:

systemd-analyze verify


Avec pour "battery-charge-threshold.service" le retour:

battery-charge-threshold.service: Service has Restart= setting other than no, which isn't allowed for Type=oneshot services. Refusing.



Du coup, j'ai mis la valeur "no" a "Restart=" et plus de message erreur.

Hors ligne

#3 31-05-2021 23:11:25

jpt
Banni(e)
Distrib. : Debian 10.8
Noyau : Linux 5.7.10 (backports)
(G)UI : LXDE
Inscription : 12-09-2020

Re : [Résolu] Service systemd : bad unit file setting

Salut,

elle est bizarre, ta ligne

R136a1 a écrit :

ExecStart=/bin/bash -c ‹ echo 60 > /sys/class/power_supply/BAT0/charge_control_end_threshold ›


1-) si c'est du bash, elle devrait commencer par #!/bin/bash, non ?
2-) mais est-ce du bash ? C'est quoi ces caractères qui ressemblent à des caractères de redirection sans en avoir franchement l'aspect :  -c echo et _threshold ?
3-) si c'est juste pour appeler echo, pourquoi ne pas simplement utiliser ExecStart=/bin/ echo 60 > /sys/..._threshold ?
4-) elle sort d'où, cette unit ?

Maintenant, je ne suis pas du tout spécialiste de systemd, qui n'est pas du tout kiss et par contre beaucoup trop touffu et hermétique.

EDIT : ah, le temps que je rédige ma réponse, tu as trouvé la solution, alors tant mieux mais j'aimerais quand même une réponse à mon point 4, merci.

Dernière modification par jpt (31-05-2021 23:13:12)


AMD Ryzen3 3200G sur Gigabyte B450M & Make Love Not War

Hors ligne

#4 01-06-2021 00:19:12

R136a1
Membre
Distrib. : Debian 12
Inscription : 07-06-2020

Re : [Résolu] Service systemd : bad unit file setting

Salut, merci pour ta réponse.
Non en fait, c'est bien une apostrophe avant echo et après threshold. C'est le formatage de la fonction citation du forum qui a transformé le signe ' en ‹

Le tuto, je l'ai trouvé ici : https://www.linuxuprising.com/2021/02/h … t.html?m=1
Et cette unit est possible sur les portable Asus récents. Asus a introduit la possibilité de bloquer le niveau de la charge des batteries pour assurer une meilleure longévité. Lenovo et Huawei font aussi ça, d'après le site que j'ai consulté. D'ailleurs dans TLP il y a un onglet spécial Lenovo pour paramétrer le niveau de charge.
Comme indiqué sur le site, il faut au moins un kernel 5.4 pour les portable Asus (j'ai dû installer le 5.10 qui est dans backports).

Par contre, j'aimerais bien savoir pourquoi la synthaxe de l'unit est différente sous Ubuntu et sous Debian. Peut être une histoire de version de systemd?
A+

Hors ligne

#5 01-06-2021 07:59:08

jpt
Banni(e)
Distrib. : Debian 10.8
Noyau : Linux 5.7.10 (backports)
(G)UI : LXDE
Inscription : 12-09-2020

Re : [Résolu] Service systemd : bad unit file setting

Bonjour,

R136a1 a écrit :

C'est le formatage de la fonction citation du forum qui a transformé le signe ' en ‹

Ça surprend, à la première lecture, et ça complique la vie au copier/coller !
Tests :
Copier/coller depuis le lien que tu donnes :
ExecStart=/bin/bash -c 'echo CHARGE_STOP_THRESHOLD > /sys/class/power_supply/BATTERY_NAME/charge_control_end_threshold'
Et la même chose dans une balise "Autre code" :

ExecStart=/bin/bash -c 'echo CHARGE_STOP_THRESHOLD > /sys/class/power_supply/BATTERY_NAME/charge_control_end_threshold'

Donc, non, on voit bien qu'ici c'est correct. Tu ne serais pas passé par un éditeur exotique ou mal paramétré pour préparer ton post ?
Par exemple, les éditeurs de forums sont coutumiers de remplacer les espaces insécables par des étoiles, hé ouais, mad, et d'autres les font purement et simplement sauter (ici).
Exemple: <-- espace insécable avant le symbole deux-points, obligatoire en typographie, et elle est visible dans l'éditeur. Mais il suffit de faire "Prévisualisation" et hop !, espace supprimée, yikes
EDIT : correction d'un accord de genre -- dommage que cette phrase ait été citée (à tort mais passons).

R136a1 a écrit :

Par contre, j'aimerais bien savoir pourquoi la syntaxe de l'unit est différente sous Ubuntu et sous Debian. Peut-être une histoire de version de systemd ?

Tu devrais nous en dire plus et nous montrer les différences, parce que là…

Dernière modification par jpt (01-06-2021 10:18:00)


AMD Ryzen3 3200G sur Gigabyte B450M & Make Love Not War

Hors ligne

#6 01-06-2021 09:28:24

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : [Résolu] Service systemd : bad unit file setting

jpt a écrit :

Exemple: <-- espace insécable avant le symbole deux-points, obligatoire en typographie, et il est visible dans l'éditeur. Mais il suffit de faire "Prévisualisation" et hop !, espace supprimée,


il est ou  l'espace insécable je vois pas trop?
edit en faite c'est histoire de raler encore  lol
c'est que tu sais pas t'y prendre, si tu fais un copié collé dans writer tu verras que j'ai inséré un espace insécable et qu'il est bien la même après une prévisualisation

rappel : Ctrl+Shift+u
je relâche,  les touches, je passe en majuscule et je saisi le code A0 et tu valides 
enfin dans ton exemple pas d'espace hein tongue

Dernière modification par Croutons (01-06-2021 09:33:48)


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#7 01-06-2021 10:09:38

jpt
Banni(e)
Distrib. : Debian 10.8
Noyau : Linux 5.7.10 (backports)
(G)UI : LXDE
Inscription : 12-09-2020

Re : [Résolu] Service systemd : bad unit file setting

Croutons a écrit :

il est où l'espace insécable je vois pas trop?

C'est à se demander si tu comprends ce que tu lis…

jpt a écrit :

et elle est visible dans l'éditeur. Mais il suffit de faire "Prévisualisation" et hop !, espace supprimée,


Mon espace insécable c'est 202f.
Si je pouvais facilement faire des copies d'écran, je te montrerais tout ça mais ici c'est la misère.

Croutons a écrit :

si tu fais un copié collé dans writer tu verras que j'ai inséré une espace insécable et qu'elle est bien là même après une prévisualisation

J'ai fait, mais comme tu ne dis pas où tu l'as insérée, on ne sait pas où la chercher… roll

Dernière modification par jpt (01-06-2021 10:19:45)


AMD Ryzen3 3200G sur Gigabyte B450M & Make Love Not War

Hors ligne

#8 01-06-2021 10:21:58

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : [Résolu] Service systemd : bad unit file setting

bon alors pour etre clair j'ai bien compris ton message mais tu n'utilises pas le bon code
je sais pas ou tu as été cherché le code 202f ??
code A0 no-break space
cMzUZY6.png

Dernière modification par Croutons (01-06-2021 10:25:43)


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#9 01-06-2021 10:43:11

jpt
Banni(e)
Distrib. : Debian 10.8
Noyau : Linux 5.7.10 (backports)
(G)UI : LXDE
Inscription : 12-09-2020

Re : [Résolu] Service systemd : bad unit file setting

Croutons a écrit :

je sais pas ou tu as été cherché le code 202f ??

Sans doute wikipedia :

Nom       Code Unicode
Espace justifiante  U+0020 
Espace insécable  U+00A0
Demi-cadratin (mot) U+2000 
Cadratin (mot)    U+2001 
Demi-espace fixe  U+2002
Espace fixe   U+2003 
Espace fine   U+2009 
Espacefine insécable U+202F


PS : dans mon bloc-notes (leafpad), tout est bien aligné verticalement, quand même plus lisible…

EDIT : https://fr.wikipedia.org/wiki/Espace_(typographie)
Dans la plupart des régions francophones, la composition soignée des grandes ponctuations (doubles ou hautes, bipoints, mais aussi tirets) est particulière en ce qu’elle nécessite deux espaces supplémentaires :
- une espace mots insécable, qui, en justification, est traitée de la même manière que l’espace mots, et qui dans Unicode est U+00A0, sauf que les traitements de texte en font une espace insécable de largeur fixe ;
- une espace fine insécable, qui a fini par être encodée à U+202F.

Dernière modification par jpt (01-06-2021 10:48:32)


AMD Ryzen3 3200G sur Gigabyte B450M & Make Love Not War

Hors ligne

#10 01-06-2021 11:13:30

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : [Résolu] Service systemd : bad unit file setting

En France et dans la plupart des pays francophones d’Europe, on a pris l’habitude de remplacer l’espace fine insécable par une espace mots insécable, mais cette habitude se perd depuis que l’espace fine insécable est disponible[réf. nécessaire]. Par exemple :

    Usage français20,21,22,23: « Quoi ? Elle a dit : « Ma mère est brésilienne ; mon père chinois. » C’est cosmopolite ! »24
    Usage dans la presse française25: « Quoi ? Elle a dit : “Ma mère est brésilienne ; mon père chinois.” C’est cosmopolite ! »2


pas clair le wikipedia dans leur exemple il utilise le code U+A0 lol
enfin en résumé d’après ce que je comprend le 202F espace fine insécable n'est pas reconnu partout word et libreoffice ne le reconnaisse pas par exemple


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#11 01-06-2021 11:23:51

jpt
Banni(e)
Distrib. : Debian 10.8
Noyau : Linux 5.7.10 (backports)
(G)UI : LXDE
Inscription : 12-09-2020

Re : [Résolu] Service systemd : bad unit file setting

Croutons a écrit :

word et libreoffice ne le reconnaissent pas par exemple

Pour Word je n'en sais rien, trop longtemps que je ne l'utilise plus, mais LO, même ma vieille version 3.5.4.2 le reconnait sans problème puisque je l'utilise, en ce moment même (mais pas *ici*, pas pour *ici*).


AMD Ryzen3 3200G sur Gigabyte B450M & Make Love Not War

Hors ligne

#12 01-06-2021 13:00:34

raleur
Membre
Inscription : 03-10-2014

Re : [Résolu] Service systemd : bad unit file setting

jpt a écrit :

1-) si c'est du bash, elle devrait commencer par #!/bin/bash, non ?


Non, c'est une commande, pas un script. Le "shebang" #! n'est utile que dans un script exécuté directement en tant qu'exécutable, pour spécifier le shell à utiliser. Au passage avec cette commande on pourrait se contenter de sh (qui pointe vers dash par défaut) au lieu de bash.

jpt a écrit :

2-) mais est-ce du bash ? C'est quoi ces caractères qui ressemblent à des caractères de redirection sans en avoir franchement l'aspect :  -c ‹ echo et _threshold › ?


Ce sont des guillemets qui ont été tranformés par un passage dans un autre forum à cause d'une publication sans spécifier le format code.

jpt a écrit :

3-) si c'est juste pour appeler echo, pourquoi ne pas simplement utiliser ExecStart=/bin/ echo 60 > /sys/..._threshold ?


Peut-être que le paramètre ExecStart ne supporte pas les redirections du shell.


Il vaut mieux montrer que raconter.

Hors ligne

Pied de page des forums