Page 1 sur 1
[systemd] comment inclure le résultat d'une commande shell
Publié : mer. 04 oct. 2023, 10:22
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
:
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
Re: [systemd] comment inclure le résultat d'une commande shell
Publié : mer. 04 oct. 2023, 10:48
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.
Re: [systemd] comment inclure le résultat d'une commande shell
Publié : mer. 04 oct. 2023, 11:14
par apojul
merci benjarobin,
j'avais supprimé par erreur
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
Re: [systemd] comment inclure le résultat d'une commande shell
Publié : jeu. 05 oct. 2023, 09:42
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.
Résolu: [systemd] comment inclure le résultat d'une commande shell
Publié : mar. 17 oct. 2023, 09:14
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
Re: [systemd] comment inclure le résultat d'une commande shell
Publié : mar. 17 oct. 2023, 09:19
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
Re: [systemd] comment inclure le résultat d'une commande shell
Publié : mar. 17 oct. 2023, 10:46
par apojul
merci benjarobin,
je suis sur la page d'input-leap et je vais basculer
Re: [systemd] comment inclure le résultat d'une commande shell
Publié : mar. 17 oct. 2023, 11:50
par apojul
je retourne sur barrier j'ai des erreurs à la compilation sur le client
Re: [systemd] comment inclure le résultat d'une commande shell
Publié : mar. 17 oct. 2023, 14:29
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 ?
Re: [systemd] comment inclure le résultat d'une commande shell
Publié : mar. 17 oct. 2023, 15:11
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
Re: [systemd] comment inclure le résultat d'une commande shell
Publié : mar. 17 oct. 2023, 15:28
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)
Re: [systemd] comment inclure le résultat d'une commande shell
Publié : mar. 17 oct. 2023, 15:37
par apojul
je vais réinstaller mais si je me souviens c'était en rapport avec qt6LinguistTools puis qt5Compat
Re: [systemd] comment inclure le résultat d'une commande shell
Publié : mar. 17 oct. 2023, 15:40
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
Re: [systemd] comment inclure le résultat d'une commande shell
Publié : mar. 17 oct. 2023, 15:52
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
Re: [systemd] comment inclure le résultat d'une commande shell [résolu]
Publié : mer. 18 oct. 2023, 22:37
par apojul
merci benjarobin,
j'avais essayé ces 2 paquets mais l'un sans l'autre
les 2 ensembles ça fonctionne nickel
merci encore