2 votes

Systemd, démarrage d'une unité de niveau utilisateur avec accès sudo

J'ai un paquet Debian qui installe mon logiciel et qui doit démarrer deux applications dans le script post-installation. La première est un démon et la seconde est un processus d'arrière-plan, tous deux sont gérés avec la commande systemd . Le problème est que je lance sudo dpkg -i ... et il ne parvient pas à démarrer l'unité de niveau utilisateur avec l'erreur suivante : Failed to connect to bus: No such file or directory. Il est normal de lancer scripts après l'installation, mais les droits sudo me permettent de lancer mon scripts. Il y a peut-être quelque chose qui m'échappe. Quelqu'un sait-il comment résoudre ce problème ?

La commande qui est utilisée pour démarrer script : systemctl --user start test.service . Lorsqu'il est exécuté à partir du programme d'installation, il devient en fait sudo systemctl --user start test.service (La même chose ne fonctionne pas à partir du terminal).

4voto

durkmurder Points 161

Ok, j'ai réussi à résoudre le problème. Ce n'était pas un problème au départ, juste mon manque de connaissance des sessions DBus et de leur fonctionnement. J'espère que ma réponse aidera quelqu'un.

Lorsque vous ouvrirez le terminal et exécuterez systemctl --user command unit tout se passera bien, mais lorsque vous essaierez de faire sous sudo ou passer à un autre utilisateur en utilisant su vous échouerez avec l'erreur que j'ai eue :

Failed to connect to bus: No such file or directory.

Le problème est que systemctl pour se connecter aux sessions utilisateur utilise l'adresse de session dbus qui est définie dans le fichier DBUS_SESSION_ADDRESS variable env. Lorsque vous faites sudo ou su vous obtenez un environnement très limité, il vous manque tout simplement DBUS_SESSION_ADDRESS et d'autres variables env. Si vous obtenez des erreurs similaires, vérifiez votre environnement, car il manque peut-être quelque chose d'important.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X