[Service au démarage] Mettre en ordre (RÉSOLU)

Questions et astuces concernant l'installation et la configuration d'archlinux
Répondre
Avatar de l’utilisateur
L_Indien
Chu Ko Nu
Messages : 391
Inscription : dim. 14 nov. 2010, 09:47
Localisation : En mouvement perpétuel...

[Service au démarage] Mettre en ordre (RÉSOLU)

Message par L_Indien »

Bonsoir à toutes et à tous,

Je patauge un peu avec les services... Et me vient quelques questions qui me taraudent :
  • Est-il possible de créer un service, mais un service écrit en bashrc, ou un autre langage ?
  • Il y a-t-il un ordre dans l'appel des services ?
    • Si oui, est-il possible de le régler ?
    • si non, est-il possible de le créer ?
Je vous remercie pour les réponses.

Bonne soirée et bon week-end.
Dernière modification par L_Indien le dim. 01 mars 2020, 10:44, modifié 1 fois.
Différence entre windows et linux
Linux est multi-tâches, windows est multi-taches.
L'Indien de la Douche - Soutient L'April
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Service au démarage] Mettre en ordre

Message par benjarobin »

Bonjour,
Un service lance un programme, ce dernier peut être dans n'importe quel langage.

Systemd gère les dépendances entre services, il n'y a donc pas d'ordre global, mais plutôt des règles qui indique que tel service doit démarrer après un autre.
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
L_Indien
Chu Ko Nu
Messages : 391
Inscription : dim. 14 nov. 2010, 09:47
Localisation : En mouvement perpétuel...

Re: [Service au démarage] Mettre en ordre

Message par L_Indien »

Bonsoir Benjarobin,

Merci pour ta réponse.
benjarobin a écrit : sam. 22 févr. 2020, 20:42Un service lance un programme, ce dernier peut être dans n'importe quel langage.
OK. Il y a-t-il des infos sur le wiki ou autre (Quelle base, quelle infos à mettre dedans, ...) ? J'ai déjà créé des services pour le démarrage, mais à chaque pris de docs ou de wiki... Donc, pour les explications, c'est souvent mort.

Cet exemple est-il déjà un bon début, ou est-il mauvais ?

Code : Tout sélectionner

[Unit]
Description=Appel d'un service perso
ConditionPathExists=script_maison_BASH

[Service]
ExecStart=script_maison_BASH
benjarobin a écrit : sam. 22 févr. 2020, 20:42 Systemd gère les dépendances entre services, il n'y a donc pas d'ordre global, mais plutôt des règles qui indique que tel service doit démarrer après un autre.
As-tu des idées ou avoir également des infos dessus ?

Je te remercie.

Bonne soirée et bon week-end.
Différence entre windows et linux
Linux est multi-tâches, windows est multi-taches.
L'Indien de la Douche - Soutient L'April
Avatar de l’utilisateur
papajoke
Elfe
Messages : 779
Inscription : sam. 30 août 2014, 19:54

Re: [Service au démarage] Mettre en ordre

Message par papajoke »

bonjour

il y a 36 000 pages sur internet qui traite du sujet , nous sommes avec systemd depuis des années.
mais à chaque pris de docs ou de wiki... Donc, pour les explications, c'est souvent mort.
pas compris ! mais le wiki arch (en) est bien à jour sur ce sujet (et bien sûr les nombreuses docs fedora)
As-tu des idées ou avoir également des infos dessus ?
tu regardes à after=, ou alors tu nous dis ce que tu désires faire

De plus, nous avons beaucoup d'unit sur notre machine qui peuvent aussi t'aider

Code : Tout sélectionner

find /usr/lib/systemd/ -name "*.service"  
find /sys/fs/cgroup/ -name "*.service"
Arch stable - Kde 5 / zsh - btrfs/mbr - Intel Core i3 - 6Go RAM - GeForce 405 video-nouveau
Avatar de l’utilisateur
L_Indien
Chu Ko Nu
Messages : 391
Inscription : dim. 14 nov. 2010, 09:47
Localisation : En mouvement perpétuel...

Re: [Service au démarage] Mettre en ordre

Message par L_Indien »

Bonjour papajoke,

Je te remercie pour ta réponse.
papajoke a écrit : dim. 23 févr. 2020, 00:18 bonjour

il y a 36 000 pages sur internet qui traite du sujet , nous sommes avec systemd depuis des années.
mais à chaque pris de docs ou de wiki... Donc, pour les explications, c'est souvent mort.
pas compris ! mais le wiki arch (en) est bien à jour sur ce sujet (et bien sûr les nombreuses docs fedora)
Je n'ai jamais dit le contraire. Il y a beaucoup de doc, mais avec mon niveau d'anglais très élevé... je priorise le français.

Il est vrai que la doc de Fedora (merci pour le tuyau) est très bien faite. Concernant les autres (ubuntu, debian-facile, ...) on retrouve à chaque fois les mêmes infos à la louche.

papajoke a écrit : dim. 23 févr. 2020, 00:18
As-tu des idées ou avoir également des infos dessus ?
tu regardes à after=, ou alors tu nous dis ce que tu désires faire

De plus, nous avons beaucoup d'unit sur notre machine qui peuvent aussi t'aider

Code : Tout sélectionner

find /usr/lib/systemd/ -name "*.service"  
find /sys/fs/cgroup/ -name "*.service"
Merci pour les infos également.
Je travaille dessus et te tiens au courant.

Bon dimanche.

[EDIT] : un lien vers Ubuntu pour expliquer comment créer un nouveau service en fr...
Différence entre windows et linux
Linux est multi-tâches, windows est multi-taches.
L'Indien de la Douche - Soutient L'April
Avatar de l’utilisateur
L_Indien
Chu Ko Nu
Messages : 391
Inscription : dim. 14 nov. 2010, 09:47
Localisation : En mouvement perpétuel...

Re: [Service au démarage] Mettre en ordre

Message par L_Indien »

Pour faire suite au fil concernant [Raspberry 4B] Connexion bluetooth DÈS LE DÉMARAGE (EN COURS...), le suis en train de créer un service, et j'ai quelques questions. Les questions ne ce n'est pas forcement lié à ce problème, c'est plus de l'ordre de l'apprentissage.

Dans l'exemple suivant :

Code : Tout sélectionner

[Unit]
Description=Appareillage automatique du clavier Bluetooth
Before=bluetooth.service
After=brcm43438.service

[Service]
Type=simple
ExecStart=/usr/bin/bluetoothctl agent on && /usr/bin/bluetoothctl power on 

[Install]
WantedBy=multi-user.target
WantedBy=emergency.target
bluetooth.service doit être exécuté avant le service d'appareillage
brcm43438.service un nécessaire pour le fonctionnement du service
le type est « simple » (pas trop compliqué... C'est intéressant surtout les autres types). Et la commande à exécuter est /usr/bin/bluetoothctl agent on && /usr/bin/bluetoothctl power on
Le service est actif dans les Runlevels de 2 à 5, ainsi qu'en emergency.

Au lieu d'une commande, c'est possible, par exemple d'appeler /repertoire/scipt.sh sachant que j'ai effectué les commandes suivantes avant :

Code : Tout sélectionner

# chmod ugo+x /repertoire/scipt.sh
# chmod 775 /repertoire/scipt.sh
$ chmod ugo+x /repertoire/scipt.sh
$ chmod 775 /repertoire/scipt.sh 
Je vous remercie.

Bonne fin de journée.
Différence entre windows et linux
Linux est multi-tâches, windows est multi-taches.
L'Indien de la Douche - Soutient L'April
Avatar de l’utilisateur
papajoke
Elfe
Messages : 779
Inscription : sam. 30 août 2014, 19:54

Re: [Service au démarage] Mettre en ordre

Message par papajoke »

Tu avais la réponse
benjarobin a écrit : sam. 22 févr. 2020, 20:42 Un service lance un programme, ce dernier peut être dans n'importe quel langage.
ton programme peut-être n'importe où (il faut impérativement passe le path complet) et de tout type (compilé..interprété) du moment qu'il s'exécute
pour 775, a toi de voir ? mais je suppose que ton service est système et donc exécuté uniquement en root
Arch stable - Kde 5 / zsh - btrfs/mbr - Intel Core i3 - 6Go RAM - GeForce 405 video-nouveau
Avatar de l’utilisateur
L_Indien
Chu Ko Nu
Messages : 391
Inscription : dim. 14 nov. 2010, 09:47
Localisation : En mouvement perpétuel...

Re: [Service au démarage] Mettre en ordre

Message par L_Indien »

Bonjour papajoke,

Je te remercie pour ta réponse.
papajoke a écrit : dim. 23 févr. 2020, 19:42Tu avais la réponse
Comme le disait Albert : « Il n'y a pas de question idiote, ... », une petite confirmation ne coûte rien… Car j'ai suivi vos diffénrents conseils, lu les sites et wiki (Fedora, Ubuntu, Archlinux, RedHat) explicant SystemD, effectués plusieurs configs avec le service et même constation : ça ne fonctionne pas.
J'effectue exactement les mêmes manips sur un autre poste, et là ça fonctionne du premier coup.
papajoke a écrit : dim. 23 févr. 2020, 19:42mais je suppose que ton service est système et donc exécuté uniquement en root
Le service est placé dans le répertoire des services, et le script à exécuter n’est point un script système : il exécute uniquement les 2 actions suivantes : bluetoothctl agent on && bluetoothctl power on

Bon dimanche.
Dernière modification par L_Indien le dim. 01 mars 2020, 19:31, modifié 1 fois.
Différence entre windows et linux
Linux est multi-tâches, windows est multi-taches.
L'Indien de la Douche - Soutient L'April
Avatar de l’utilisateur
papajoke
Elfe
Messages : 779
Inscription : sam. 30 août 2014, 19:54

Re: [Service au démarage] Mettre en ordre

Message par papajoke »

L_Indien a écrit : dim. 01 mars 2020, 10:44 les mêmes manips depuis sur un autre poste, et là ça fonctionne
Ce que je constate c'est que avant, tu exécutais tes commandes avant de lancer le service bluetooth alors que maintenant (sur autre sujet) tu lances ton service après bluetooth
le problème n'était donc pas au niveau de ExecStart
Je te disais simplement que la suite de tes 4 commandes chmod est un peu trop puisque ton script va être simplement exécuté en tant que root
Arch stable - Kde 5 / zsh - btrfs/mbr - Intel Core i3 - 6Go RAM - GeForce 405 video-nouveau
Avatar de l’utilisateur
L_Indien
Chu Ko Nu
Messages : 391
Inscription : dim. 14 nov. 2010, 09:47
Localisation : En mouvement perpétuel...

Re: [Service au démarage] Mettre en ordre (RÉSOLU)

Message par L_Indien »

Bonsoir papajokel,

Je te remercie pour ta réponse.
papajoke a écrit : dim. 01 mars 2020, 13:59Ce que je constate c'est que avant, tu exécutais tes commandes avant de lancer le service bluetooth alors que maintenant (sur autre sujet) tu lances ton service après bluetooth
le problème n'était donc pas au niveau de ExecStart
Je t'avoue avoir du mal à comprendre… Dans le post en question, le service bluetooth.service est exécuté en premier (au tout début du post. Je pars du principe que les commandes sont à éxecuter dans l'ordre de lecture)
et dans le service d’appareillage automatique du clavier, le « Before » est bluetooth.service et l’ « after » et brcm43438_bis.Service.
Ensuite dans le service, je fais appel au binaire bluetoothctl, mais il faut que les 2 services (bluetooth et brcm43438) soient exécutés pour que le binaire fonctionne.

J’ai raté un épisode, ou on ne parle pas de la même chose, ou je ne comprends rien du tout... ??
papajoke a écrit : dim. 01 mars 2020, 13:59Je te disais simplement que la suite de tes 4 commandes chmod est un peu trop puisque ton script va être simplement exécuté en tant que root
Il est exact que c’est un peu surdimensionné, mais si jamais le clavier en BT n’est pas connecté, j’utilise un clavier classique, me logue en client puis exécute le script.

Bonne soirée.
Différence entre windows et linux
Linux est multi-tâches, windows est multi-taches.
L'Indien de la Douche - Soutient L'April
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Service au démarage] Mettre en ordre (RÉSOLU)

Message par benjarobin »

Il y a une gros différence, le service présenté dans ce sujet ne peut pas fonctionner, à cause du Before, tu lances les commandes avant le service bluetooth.service.
Dans le sujet viewtopic.php?f=26&t=21741&p=173236, le service que tu as créé se lance après le service bluetooth.service.
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
L_Indien
Chu Ko Nu
Messages : 391
Inscription : dim. 14 nov. 2010, 09:47
Localisation : En mouvement perpétuel...

Re: [Service au démarage] Mettre en ordre (RÉSOLU)

Message par L_Indien »

Salut benjarobin,

Je te remercie pour ta réponse.

La question va sûrement te paraître stupide, mais je préfère la poser… Comme ça la prochaine fois, je ne ferai pas avoir.
benjarobin a écrit : dim. 01 mars 2020, 21:48 Il y a une gros différence, le service présenté dans ce sujet ne peut pas fonctionner, à cause du Before, tu lances les commandes avant le service bluetooth.service.
Ça signifie que dans l’exemple suivant :

Code : Tout sélectionner

[Unit]
Description=Appareillage automatique du clavier Bluetooth
Before=bluetooth.service
After=brcm43438.service

[Service]
Type=simple
ExecStart=/usr/bin/bluetoothctl agent on && /usr/bin/bluetoothctl power on
Les 2 commandes /usr/bin/bluetoothctl agent on && /usr/bin/bluetoothctl power on sont exécutées avant le bluetooth.service ?
Au vu de la syntaxe, je pensais, que ça se déroulait de cette manière :
  • Exécution du service bluetooth
  • brcm43438.service est nécessaire pour le fonctionnement du service
Si les 2 conditions sont réunies, exécution des commandes /usr/bin/bluetoothctl agent on && /usr/bin/bluetoothctl power on

Ou le déroulement est plus du style :
  • brcm43438.service est nécessaire pour le fonctionnement du service
  • exécution des commandes /usr/bin/bluetoothctl agent on && /usr/bin/bluetoothctl power on
  • Exécution du service bluetooth
Je te remercie pour la réponse.

Bonne après-midi.
Différence entre windows et linux
Linux est multi-tâches, windows est multi-taches.
L'Indien de la Douche - Soutient L'April
laurent85
Elfe
Messages : 954
Inscription : mar. 16 oct. 2018, 21:05

Re: [Service au démarage] Mettre en ordre (RÉSOLU)

Message par laurent85 »

Bonjour,
Je dois dire qu'avec les 2 fils de discussion en croisé j'arrive pas à suivre.

Dans l'autre fil il a été dit que le '&&' logique n'est pas correct. D'après la doc c'est soit un ';' soit 2 lignes ExecStart= avec 1 ligne par commande. Réf https://www.freedesktop.org/software/sy ... ExecStart=

Le type Type=simple accepte une seule commande, Type=oneshot en accepte plusieurs Réf https://www.freedesktop.org/software/sy ... vice#Type=

La chronologie est :
After=service actif en temps t-1
Ton "service" démarré en t0
Before= service activé en t+1

Réf Before=, After= https://www.freedesktop.org/software/sy ... ml#Before=
Dernière modification par laurent85 le lun. 02 mars 2020, 15:44, modifié 1 fois.
Avatar de l’utilisateur
papajoke
Elfe
Messages : 779
Inscription : sam. 30 août 2014, 19:54

Re: [Service au démarage] Mettre en ordre (RÉSOLU)

Message par papajoke »

la doc en fr
donc ici, tu demandes de lancer ton script avant le service bluetooth et après le service brcm43438 (si c'était possible ...)
Arch stable - Kde 5 / zsh - btrfs/mbr - Intel Core i3 - 6Go RAM - GeForce 405 video-nouveau
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Service au démarage] Mettre en ordre (RÉSOLU)

Message par benjarobin »

L_Indien a écrit : lun. 02 mars 2020, 13:14 ... Ou le déroulement est plus du style ...
Oui
laurent85 a écrit : lun. 02 mars 2020, 15:39Le type Type=simple accepte une seule commande, Type=oneshot en accepte
En effet, pour son cas, le plus simple est de faire :

Code : Tout sélectionner

[Service]
Type=oneshot
ExecStart=/usr/bin/bluetoothctl agent on
ExecStart=/usr/bin/bluetoothctl power on
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
L_Indien
Chu Ko Nu
Messages : 391
Inscription : dim. 14 nov. 2010, 09:47
Localisation : En mouvement perpétuel...

Re: [Service au démarage] Mettre en ordre (RÉSOLU)

Message par L_Indien »

Bonjour,

Je vous remercie pour vos différents messages, conseils et votre tolérance.

Désolé pour les confusions entre les 2 posts.
L'idée n'était pas là, ni de jouer les apprentis sorciers.

Je vous souhaite une bonne journée et un bon week-end.
Différence entre windows et linux
Linux est multi-tâches, windows est multi-taches.
L'Indien de la Douche - Soutient L'April
Répondre