[systemd] comment inclure le résultat d'une commande shell

Applications, problèmes de configuration réseau
Répondre
apojul
Hankyu
Messages : 36
Inscription : sam. 09 mai 2020, 14:11

[systemd] comment inclure le résultat d'une commande shell

Message par apojul »

Bonjour,
j'écris un service comme ceci :

Code : Tout sélectionner

[Unit]
Description=Barrier Server Daemon
Wants=network-online.target

[Service]
# get private ip
Environment="IP='${ip route show dev br0 | awk \'NR==1{print $7}\'}'"
ExecStart=/usr/bin/barriers --config /home/pascal/.local/share/barrier/barrier.conf --log /home/pascal/.local/share/barrier/barrier.log --no-daemon --name arch-apo-desktop --restart --debug INFO --address $IP
Restart=on-abort

[Install]
WantedBy=default.target
mais systemd n'interprète pas ma variable, vu dans systemctl --user status barrierc.service :

Code : Tout sélectionner

barriers: unrecognized option `$7}}'
comment l'écrire correctement :
  • dois-je échapper autrement ?
  • dois-je déclarer ma variable autrement ?
  • ce n'est pas possible dans systemd d'utiliser le résultat d'une commande shell
Merci pour vos commentaires et vos suggestions.

Apojul
dwm | zsh | desktop Ryzen 1700X
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17239
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [systemd] comment inclure le résultat d'une commande shell

Message par benjarobin »

Bonjour,
Ce n'est pas possible, voir doc de systemd.
Note: Il manque : After=network-online.target
La question c'est pourquoi tu cherches à faire cela ? C'est plus simple que le service écoute sur toutes les interfaces.
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
apojul
Hankyu
Messages : 36
Inscription : sam. 09 mai 2020, 14:11

Re: [systemd] comment inclure le résultat d'une commande shell

Message par apojul »

merci benjarobin,

j'avais supprimé par erreur

Code : Tout sélectionner

After=network-online.target
pensant simplifier

sinon j'ai écrit le fichier suivant qui fonctionne :

Code : Tout sélectionner

[Unit]
Description=Barrier Server Daemon
Wants=network-online.target
After=network-online.target

[Service]
ExecStartPre=/usr/bin/bash -c "/usr/bin/systemctl --user set-environment IP=$(ip route show dev br0 | awk \'NR==1{print $7}\')"
ExecStart=/usr/bin/barriers --config /home/pascal/.local/share/barrier/barrier.conf --log /home/pascal/.local/share/barrier/barrier.log --no-daemon --name arch-apo-desktop --restart --debug INFO --address $IP
Restart=on-abort

[Install]
WantedBy=default.target
sinon je cherche à récupérer l'adresse ip de ce poste et le réseau est configuré avec un pont et dhcp et non en NAT
si tu connais un autre moyen, je t'écoute
dwm | zsh | desktop Ryzen 1700X
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17239
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [systemd] comment inclure le résultat d'une commande shell

Message par benjarobin »

Cette méthode que tu utilises fonctionne en effet mais si tu injectes une variables d'environnement ainsi tu devrait lui donner un meilleur nom unique. Après un simple script bash que le service systemd appelle est souvent plus simple...

Sinon, tu parles bien de input-leap, qui est un fork de barrier, qui est un fork de synergy ?

Tu n'as pas besoin de spécifier --address, par défaut le service écoute sur toutes les interfaces. Pourvoir vouloir spécifier une IP en particulier ? Je ne comprend pas.
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
apojul
Hankyu
Messages : 36
Inscription : sam. 09 mai 2020, 14:11

Résolu: [systemd] comment inclure le résultat d'une commande shell

Message par apojul »

Désolé pour la réponse tardive

tu as raison je n'ai pas besoin de préciser --address et donc de déterminer l'adresse ip du serveur barrier (j'utilise barrier, je ne connaissais pas input_leave), j'ai donc simplifié mon fichier

merci pour tes réponses
dwm | zsh | desktop Ryzen 1700X
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17239
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [systemd] comment inclure le résultat d'une commande shell

Message par benjarobin »

Je te conseil vivement l'utilisation d'input-leap qui est totalement compatible avec un client barrier. input-leap possède de nombreux correctifs, le développement de barrier n'est pas aussi actif
D’ailleurs si tu cherches barrier sur le wiki tu tombes sur la page https://wiki.archlinux.org/title/Input_Leap
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
apojul
Hankyu
Messages : 36
Inscription : sam. 09 mai 2020, 14:11

Re: [systemd] comment inclure le résultat d'une commande shell

Message par apojul »

merci benjarobin,

je suis sur la page d'input-leap et je vais basculer
dwm | zsh | desktop Ryzen 1700X
apojul
Hankyu
Messages : 36
Inscription : sam. 09 mai 2020, 14:11

Re: [systemd] comment inclure le résultat d'une commande shell

Message par apojul »

je retourne sur barrier j'ai des erreurs à la compilation sur le client
dwm | zsh | desktop Ryzen 1700X
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17239
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [systemd] comment inclure le résultat d'une commande shell

Message par benjarobin »

Etrange, car Barrier ne compile pas chez moi, mais input-leap oui... Tu as compilé/utilisé quel paquet de AUR ?
Rassure moi tu utilises bien un paquet AUR ?
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
apojul
Hankyu
Messages : 36
Inscription : sam. 09 mai 2020, 14:11

Re: [systemd] comment inclure le résultat d'une commande shell

Message par apojul »

oui j'ai utilisé input-leap-git et input-leap-headless-git
sur ces paquets j'ai des erreurs à la compilation sur le client mais pas pour barrier qui fonctionne bien
Dernière modification par apojul le mar. 17 oct. 2023, 15:35, modifié 1 fois.
dwm | zsh | desktop Ryzen 1700X
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17239
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [systemd] comment inclure le résultat d'une commande shell

Message par benjarobin »

Peux tu donner les erreurs de compilation ? Note il n'y a qu'une seule compilation pour générer les paquets input-leap-git et input-leap-headless-git (un seul PKGBUILD)
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
apojul
Hankyu
Messages : 36
Inscription : sam. 09 mai 2020, 14:11

Re: [systemd] comment inclure le résultat d'une commande shell

Message par apojul »

je vais réinstaller mais si je me souviens c'était en rapport avec qt6LinguistTools puis qt5Compat
Dernière modification par apojul le mar. 17 oct. 2023, 15:41, modifié 1 fois.
dwm | zsh | desktop Ryzen 1700X
apojul
Hankyu
Messages : 36
Inscription : sam. 09 mai 2020, 14:11

Re: [systemd] comment inclure le résultat d'une commande shell

Message par apojul »

Code : Tout sélectionner

-- Could NOT find Qt6LinguistTools (missing: Qt6LinguistTools_DIR)
CMake Error at src/gui/CMakeLists.txt:4 (find_package):
  Found package configuration file:

    /usr/lib/cmake/Qt6/Qt6Config.cmake

  but it set Qt6_FOUND to FALSE so package "Qt6" is considered to be NOT
  FOUND.  Reason given by package:

  Failed to find required Qt component "LinguistTools".

  Expected Config file at
  "/usr/lib/cmake/Qt6LinguistTools/Qt6LinguistToolsConfig.cmake" does NOT
  exist



  Configuring with --debug-find-pkg=Qt6LinguistTools might reveal details why
  the package was not found.

  Configuring with -DQT_DEBUG_FIND_PACKAGE=ON will print the values of some
  of the path variables that find_package uses to try and find the package.



-- Configuring incomplete, errors occurred!
==> ERROR: A failure occurred in build().
    Aborting...
 -> error making: input-leap-git-exit status 4
 -> Failed to install the following packages. Manual intervention is required:
input-leap-git - exit status 4
input-leap-headless-git - exit status 4
ceci à l'installation d'input-leap-git
dwm | zsh | desktop Ryzen 1700X
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17239
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [systemd] comment inclure le résultat d'une commande shell

Message par benjarobin »

Voir les commentaires (https://aur.archlinux.org/packages/input-leap-git), suite à des changements récents, il faut installer au préalable les paquets suivants : qt6-5compat, qt6-tools
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
apojul
Hankyu
Messages : 36
Inscription : sam. 09 mai 2020, 14:11

Re: [systemd] comment inclure le résultat d'une commande shell [résolu]

Message par apojul »

merci benjarobin,

j'avais essayé ces 2 paquets mais l'un sans l'autre

les 2 ensembles ça fonctionne nickel

merci encore
dwm | zsh | desktop Ryzen 1700X
Répondre