Page 1 sur 2
[systemd] Service ineffectif au démarrage
Publié : dim. 16 déc. 2012, 22:45
par esclapion
Bonsoir,
Je cherche à créer un service qui fasse passer en low le profil d'alimentation de mon ATI.
Pour ça, j'ai écrit et rendu exécutable un script :
Code : Tout sélectionner
#!/bin/bash
echo low > /sys/class/drm/card0/device/power_profile
et un service :
Code : Tout sélectionner
[Unit]
Description=Initialisation personnelle
After=gdm.service
[Service]
Type=oneshot
ExecStart=/etc/initperso
RemainAfterExit=yes (ou no, c'est pareil)
[Install]
WantedBy=multi-user.target
Puis fait un
systemctl enable de ce service.
Au redémarrage, aucun effet. Si je fais un
systemctl start initperso.service, ça marche.
(edit)
Je suis sous Manjaro, pas Arch pure.
Re: [systemd] Service ineffectif au démarrage
Publié : lun. 17 déc. 2012, 08:01
par oktoberfest
Salut, que te réponds :
Il est censé te dire qu'il fait un lien symbolique.
Re: [systemd] Service ineffectif au démarrage
Publié : lun. 17 déc. 2012, 11:07
par esclapion
Merci, mais le lien était fait.
Code : Tout sélectionner
[root@manjaro pat]# systemctl enable initperso.service
[root@manjaro pat]# systemctl disable initperso.service
rm '/etc/systemd/system/multi-user.target.wants/initperso.service'
[root@manjaro pat]# systemctl enable initperso.service
ln -s '/usr/lib/systemd/system/initperso.service' '/etc/systemd/system/multi-user.target.wants/initperso.service'
[root@manjaro pat]#
Re: [systemd] Service ineffectif au démarrage
Publié : lun. 17 déc. 2012, 11:11
par oktoberfest
et que dit un
une fois l'ordinateur redémarré ?
Re: [systemd] Service ineffectif au démarrage
Publié : lun. 17 déc. 2012, 11:26
par esclapion
J'ai redémarré mon PC.
Code : Tout sélectionner
[root@manjaro pat]# systemctl status initperso
initperso.service - Initialisation personnelle
Loaded: loaded (/usr/lib/systemd/system/initperso.service; enabled)
Active: inactive (dead) since lun., 2012-12-17 11:24:58 CET; 50s ago
Process: 500 ExecStart=/etc/initperso (code=exited, status=0/SUCCESS)
CGroup: name=systemd:/system/initperso.service
déc. 17 11:24:58 manjaro systemd[1]: Started Initialisation personnelle.
[root@manjaro pat]#
Re: [systemd] Service ineffectif au démarrage
Publié : lun. 17 déc. 2012, 11:29
par oktoberfest
Donc le service a bien été démarré
Code : Tout sélectionner
déc. 17 11:24:58 manjaro systemd[1]: Started Initialisation personnelle.
Re: [systemd] Service ineffectif au démarrage
Publié : lun. 17 déc. 2012, 11:38
par esclapion
Oui, mais il est ineffectif, j'entends mon ventilateur tourner.
Si je lance le service à la main, le bruit s'arrête. Pareil si je fais un /etc/initperso direct.
Je pense à une question de synchro, mais ça marche sous Arch pure.
Normalement, il devrait attendre gdm.service pour démarrer, non ? Puis-je le synchroniser plus tard, sur quoi ?
De plus, je ne sais pas si c'est une impression, mais il me semble observer un léger temps d'arrêt entre l'apparition du fond du bureau et celle de la barre des tâches lorsqu'il est actif.
Re: [systemd] Service ineffectif au démarrage
Publié : lun. 17 déc. 2012, 11:40
par oktoberfest
Je soupçonne gnome de modifier le paramètre /sys/class/drm/card0/device/power_profile.
J'ai eu dans le passé des soucis avec gnome : je mettais ma partition / en lecture seule (ro) dans /etc/fstab mais gnome/gdm la remettait en lecture/écriture.
Re: [systemd] Service ineffectif au démarrage
Publié : lun. 17 déc. 2012, 11:45
par esclapion
De mon côté, je me demandais si l'arborescence que je crois virtuelle /sys/class/drm/card0/device/power_profile
était accessible tout de suite, ou si elle attendait ? pour être disponible.
Re: [systemd] Service ineffectif au démarrage
Publié : lun. 17 déc. 2012, 12:01
par oktoberfest
Je pense que l'arborescence est disponible quand le driver est chargé, donc très tôt.
Ce que tu peux tester :
- supprimer le ligne After=gdm.service
- démarrer en passant au noyau l'option : systemd.unit=multi-user.target
Ceci te fera démarrer dans l'ancien runlevel 3. Tu sauras ainsi si c'est gdm qui te causes un souci ou pas.
Re: [systemd] Service ineffectif au démarrage
Publié : lun. 17 déc. 2012, 12:50
par esclapion
Re,
Ça bloque au démarrage, juste après les tout premiers messages sur l'absence de cache.
Code : Tout sélectionner
[Unit]
Description=Initialisation personnelle
#After=gdm.service
[Service]
J'ai modifié dans un
40_custom manipulé par une Arch qui se trouve à côté et qui est maîtresse du grub.
Code : Tout sélectionner
linux /boot/vmlinuz-36-x86_64 root=UUID=8859141b-6574-4eda-9cb0-4c0d28d678bd ro quiet
# linux /boot/vmlinuz-36-x86_64 root=UUID=8859141b-6574-4eda-9cb0-4c0d28d678bd ro systemd.unit=multi-user.target quiet
Re: [systemd] Service ineffectif au démarrage
Publié : lun. 17 déc. 2012, 13:53
par oktoberfest
Je ne vois pas le rapport avec ton service, ni avec le runlevel multi-user.target...
Ca bloque éternellement, ou les 90 secondes réglementaires de systemd ? Il serait intéressant de laisser le temps qu système, histoire d'avoir des logs.
Re: [systemd] Service ineffectif au démarrage
Publié : lun. 17 déc. 2012, 14:50
par esclapion
Bon, nouvel essai.
Là, après les messages "
Assuming disk cache : write through", il a bloqué.
J'ai attendu 10' (et c'est long

). Au bout de ce temps, j'ai vu un "no signal", et il m'a passé la main ensuite à la console. Le
power_profile était bien passé en
low, mais je ne sais pas si c'est significatif ?
Y a-t-il qqch sur quoi se déclencher après
gdm.service ?
Et j'ai toujours ces 1 ou 2" d'attente avant l'apparition de la barre des tâches.
Re: [systemd] Service ineffectif au démarrage
Publié : lun. 17 déc. 2012, 15:07
par oktoberfest
Une fois que tu as la main, tu fais un 'systemctl status initperso' pour voir si ton service a bien été exécuté ou pas (je ne vois pas pourquoi il ne le serait pas).
Pour le reste je ne peux pas t'aider. J'ai viré gdm/gnome car c'était trop lourd et ça faisait des choses dans mon dos (un peu comme chez toi

)
Re: [systemd] Service ineffectif au démarrage
Publié : lun. 17 déc. 2012, 16:50
par esclapion
Merci tout de même pour ton aide.
Les devs de Manjaro sont en train de remplacer
gdm par
lxdm, à cause de "quelques problèmes", et je commence à comprendre pourquoi.
Mais pour l'instant, je n'ai pas trop envie de planter mon instal en le faisant.
Re: [systemd] Service ineffectif au démarrage
Publié : lun. 17 déc. 2012, 17:35
par esclapion
Bon, j'ai remplacé
gdm par
lxdm -> pareil ????
Code : Tout sélectionner
[root@manjaro pat]# systemctl status initperso.service
initperso.service - Initialisation personnelle
Loaded: loaded (/usr/lib/systemd/system/initperso.service; enabled)
Active: inactive (dead) since lun., 2012-12-17 17:29:47 CET; 26s ago
Process: 471 ExecStart=/etc/initperso (code=exited, status=0/SUCCESS)
CGroup: name=systemd:/system/initperso.service
déc. 17 17:29:47 manjaro systemd[1]: Started Initialisation personnelle.
[root@manjaro pat]#
Code : Tout sélectionner
[root@manjaro system]# cat initperso.service
[Unit]
Description=Initialisation personnelle
After=lxdm.service
[Service]
Type=oneshot
ExecStart=/etc/initperso
RemainAfterExit=no
[Install]
WantedBy=multi-user.target
[root@manjaro system]#
Je sèche... J'ai désinstallé
gdm (déjà désactivé) à tout hasard, pour éviter les collisions.
A noter que le démarrage n'est pas plus rapide avec
lxdm.
Re: [systemd] Service ineffectif au démarrage
Publié : lun. 17 déc. 2012, 17:42
par benjarobin
Mais pourquoi tu dis que cela ne fonctionne pas, tout prouve que le service est pleinement fonctionnel
Re: [systemd] Service ineffectif au démarrage
Publié : lun. 17 déc. 2012, 17:47
par esclapion
Bonjour,
Mon script
/etc/initperso :
Code : Tout sélectionner
#!/bin/bash
echo low > /sys/class/drm/card0/device/power_profile
[root@manjaro pat]#
Je devrais donc retrouver
low. Or je retrouve
high.
Si je fais un
systemctl start initperso.service à la main, après le démarrage, ça passe bien à
low.
(edit)
Code : Tout sélectionner
[root@manjaro pat]# ls -l /etc/initperso
-rwxr-xr-x 1 root root 65 16.12.2012 21:23 /etc/initperso*
[root@manjaro pat]#
Re: [systemd] Service ineffectif au démarrage
Publié : lun. 17 déc. 2012, 18:24
par benjarobin
Je pense que le script fonctionne très bien mais que quelque chose le remet à high.
Re: [systemd] Service ineffectif au démarrage
Publié : lun. 17 déc. 2012, 18:27
par esclapion
Oui, mais quoi ?

Je me suis (en théorie) après
lxdm.service, saurais-tu après quoi me mettre pour déclencher encore plus tard ?
Je vais rajouter une instruction
touch /tmp/toto dans mon script, voir si j'y passe, mais je pense que oui.
(edit)
Oui :
Code : Tout sélectionner
[root@manjaro pat]# ls -l /tmp/toto
-rw-r--r-- 1 root root 0 17.12.2012 18:28 /tmp/toto
[root@manjaro pat]#