IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Debian Discussion :

Problème démarrage service personnalisé avec VM Debian


Sujet :

Debian

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 110
    Points : 52
    Points
    52
    Par défaut Problème démarrage service personnalisé avec VM Debian
    Bonjour à tous,

    J'ai créé un Daemon service que j'ai installé tant bien que mal sur une distribution Debian qui fonctionne à partir d'une VM Virtualbox.

    Dès que je démarre la VM, le service que j'ai développé ne marche pas (cf. message d'erreur ci-dessous).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    juin 18 12:58:14 debianJB systemd[1]: WeatherMet.service: Scheduled restart job, restart counter is at 2.
    juin 18 12:58:14 debianJB systemd[1]: Stopped WeatherMet.service - 
    juin 18 12:58:15 debianJB systemd[1]: Started WeatherMet.service - 
    juin 18 12:58:15 debianJB WeatherMet[11107]: qt.qpa.xcb: could not connect to display
    juin 18 12:58:15 debianJB WeatherMet[11107]: qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
    juin 18 12:58:15 debianJB WeatherMet[11107]: This application failed to start because no Qt platform plugin could be initialized. Reinstalling the applicatio>
    juin 18 12:58:15 debianJB WeatherMet[11107]: Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayla>
    juin 18 12:58:15 debianJB systemd[1]: WeatherMet.service: Main process exited, code=killed, status=6/ABRT
    juin 18 12:58:15 debianJB systemd[1]: WeatherMet.service: Failed with result 'signal'.http://sjmproxy.stjn.local 3129
    J'ai installé tous les paquets Qt5 et 6 demandés et le résultat reste toujours le même (cf. image ci-dessous) :
    Nom : Capture d’écran 2024-06-19 082514.jpg
Affichages : 42
Taille : 274,8 Ko
    Nom : Capture d’écran 2024-06-19 082421.jpg
Affichages : 39
Taille : 164,3 Ko

    Je suis complètement et totalement novice sous linux, donc avoir votre aide me serait plus que bénéfique.

    Je vous remercie d'avance à tous pour vos réponses ainsi que du temps que vous aurez consacré pour me répondre.

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 174
    Points : 4 602
    Points
    4 602
    Par défaut
    Bonjour
    Citation Envoyé par Jb_One36 Voir le message
    créé un Daemon service
    un deamon avec qt widget ???? : "not connect to display" "no xcb"

    tu utilises systemd pour le lancer.
    tu lances ce service avec --user (lancé après connexion)? sinon cela n'a pas de sens de lancer une application graphique, faut-il encore que même en user nous soyons en graphique.

    Ou alors, ton "Daemon service" n'est qu'une simple application lancée au démarrage du bureau ? alors il est peut-être inutile d'utiliser systemd mais plutot "le lanceur auto" de ton bureau (ce qui me semble plus logique)

    Sinon, c'est ton code.
    1) doit fonctionner en lancement via terminal.
    2) fonctionne en root ? sans graphique ?
    3) A toi de coder un log dans ton app
    $moi= ( !== ) ? : ;

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 110
    Points : 52
    Points
    52
    Par défaut
    Bonjour Papajoker,

    Tout d'abord, Merci du temps passé à répondre à mon problème.

    Je vais noter un peu plus de précisions sur les méthodes que j'ai utilisé pour l'installation du service.

    1) J'ai développé un service "Daemon Linux 64 bits" sous l'éditeur Windev.
    2) Après génération du service, j'ai obtenu un dossier contenant des fichiers avec l'extension "SO" et un seul fichier sans extension.
    3) Sur ma VM Debian, j'ai installé l'ensemble de ces fichiers dans un dossier que j'appellerai "MonService" à l'emplacement /home/MonUser/Documents/MonService
    4) Dans le dossier "etc/systemd/system", j'ai créé un fichier que je vais nommé "MonService.service" dans lequel j'ai noté les commandes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    [Unit]
    Description=XXXXXXXXXXXXXXXXXXXX
    After=network.target
     
    [Service]
    ExecStart=/home/MonUser/Documents/MonService/MonAppli
    Restart=on-failure
     
    [Install]
    WantedBy=multi-user.target
    5) Après redémarrage de la machine, je me retrouve avec les erreurs que j'ai noté dans mon 1er post.

    -------------------------------------------------------------------------------------------------------------------

    Ci-dessous les réponses à tes questions :

    1) doit fonctionner en lancement via terminal.
    Euh ! Je sais pas si je vais répondre dans le bon sens, mais le service que j'ai créé doit fonctionner au démarrage de la machine et ceci, jusqu'à ce quelle soit éteinte.

    2) fonctionne en root ? sans graphique ?
    En root, je sais pas ? Comme je l'ai dit, je suis complètement novice, tout ce que je veux, c'est que le service fonctionne sans restriction de droit. Pour la partie graphique ... il n'y en a pas, pas d'interaction avec l'utilisateur.

    3) A toi de coder un log dans ton app.
    Je vais regarder ce que je peux faire comme log avec Windev et je reviendrai vers toi, si j'obtiens ce qui me pose problème.

    Merci pour ton aide.

  4. #4
    Membre chevronné Avatar de gabriel21
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2007
    Messages : 525
    Points : 1 900
    Points
    1 900
    Par défaut
    Je compléterais la réponse de papajoker avec :

    1. Qt permet de faire des programmes n'utilisant pas l'interface graphique;
    2. Si un programme Qt a pour dépendance une interface graphique : il faut que la machine en possède une : Xserver, Wayland pour cité les plus connus sous Linux;
    3. Un serveur Debian par défaut n'a pas d'interface graphique. Son installation est possible, mais doit être parfaitement justifié vu les problématiques de performance et de sécurité que cela va engendrer;
    4. Un poste de travail Debian a par défaut une interface graphique;
    5. Donc ton application peut fonctionner sur ton poste et pas sur le serveur;
    6. Si c'est pour de l’apprentissage, tu ne devrais pas installer une interface graphique;
    7. Si c'est pour le travail, tu ne devrais pas non plus le faire; (Tu auras de mal à trouver un admin système qui valide l'installation) ou tu passe sous Windows ( et encore, les dernières versions n'installent plus d'interface graphique par défaut);
    8. Si l'application nécessite d'afficher des informations soit tu déporte l'affichage sur un poste de travail, soit tu t'orientes vers des librairies tel que ncurse qui permettent de se passer d'une interface graphique.

    Modification suite à ta réponse, parvenu pendant l'écriture de la mienne:


    1. Je connais pas Windev à part son existence;
    2. Un survol rapide de la documentation : Windev semble ne gérer que les systèmes avec une interface graphique. Ils insistent sur l'installation de QtCore et QtGUI



    Bon courage
    "Les cons, ça ose tout. C'est même à ça qu'on les reconnaît." Michel Audiard - Les tontons flingueurs
    Site Web : https://www.admin-libre.fr

  5. #5
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 174
    Points : 4 602
    Points
    4 602
    Par défaut
    Citation Envoyé par Jb_One36 Voir le message
    1) doit fonctionner en lancement via terminal.
    Euh ! Je sais pas si je vais répondre dans le bon sens, mais le service que j'ai créé doit fonctionner au démarrage de la machine et ceci, jusqu'à ce quelle soit éteinte.
    Le minimum est de lancer ta ligne de commande (ExecStart) dans un terminal pour voir
    Si ok, après reboot, avant de se connecter en graphique, tu peux le lancer manuellement en tty pour voir si il se lance bien sans pile graphique



    Il est possible qu'avec ton executable, windev désire quand même une pile graphique. Ce qu'indique ton erreur "not connect to display" "no xcb". il faut voir avec le forum windev...

    Citation Envoyé par Jb_One36 Voir le message
    4) Dans le dossier "etc/systemd/system", j'ai créé un fichier que je vais nommé "MonService.service"
    ...
    sans restriction de droit. Pour la partie graphique ... il n'y en a pas, pas d'interaction avec l'utilisateur.
    Donc c'est actuellement un service système qui n'a accès à aucune pile graphique (elle n'est pas encore créée)
    il est possible d'avoir des services systemd lancés dans le contexte utilisateur (donc après connexion et avec pile graphique), mais ils ont alors les droits de cet utilisateur (peut-être suffisant pour toi?); Service placé dans le home et lancé/installé avec "--user"
    $moi= ( !== ) ? : ;

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 110
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par gabriel21 Voir le message
    Je compléterais la réponse de papajoker avec :

    1. Qt permet de faire des programmes n'utilisant pas l'interface graphique;
    2. Si un programme Qt a pour dépendance une interface graphique : il faut que la machine en possède une : Xserver, Wayland pour cité les plus connus sous Linux;
    3. Un serveur Debian par défaut n'a pas d'interface graphique. Son installation est possible, mais doit être parfaitement justifié vu les problématiques de performance et de sécurité que cela va engendrer;
    4. Un poste de travail Debian a par défaut une interface graphique;
    5. Donc ton application peut fonctionner sur ton poste et pas sur le serveur;
    6. Si c'est pour de l’apprentissage, tu ne devrais pas installer une interface graphique;
    7. Si c'est pour le travail, tu ne devrais pas non plus le faire; (Tu auras de mal à trouver un admin système qui valide l'installation) ou tu passe sous Windows ( et encore, les dernières versions n'installent plus d'interface graphique par défaut);
    8. Si l'application nécessite d'afficher des informations soit tu déporte l'affichage sur un poste de travail, soit tu t'orientes vers des librairies tel que ncurse qui permettent de se passer d'une interface graphique.

    Modification suite à ta réponse, parvenu pendant l'écriture de la mienne:


    1. Je connais pas Windev à part son existence;
    2. Un survol rapide de la documentation : Windev semble ne gérer que les systèmes avec une interface graphique. Ils insistent sur l'installation de QtCore et QtGUI



    Bon courage
    Bonjour et merci pour tes réponses gabriel21,

    En réponse à ton post, le service que j'ai écrit n'utilise aucune IHM, son utilisation est de faire de l'acquisition et intégration de données avec une fréquence d'échantillonnage de 5mn.
    La VM Debian qui est installé n'a pas d'interface graphique, je vais donc réinstaller mon OS Debian qui fonctionne avec VirtualBox de cette façon.

    Pour info :
    Comme indiqué, je suis totalement débutant avec Linux (il y a un début à tout), donc ! Afin d'éviter de faire n'importe quoi et de rendre inexploitable la machine de production (c'est une VM aussi mais sous VMWare), j'ai préféré installer moi même l'OS, ce qui me permet au passage d'apprendre quelques fonctions.
    Cependant, comme tout débutant sans formation quelconque, difficile d'obtenir des réponses aux problématiques complexes (du moins, ce qui paraît compliqué pour moi, l'est moins pour d'autres).

    Je vais refaire les essais avec une version de Debian sans environnement graphique, mais je pense que le problème va être identique ... à voir.

    En tout cas, merci de bien vouloir perdre un peu de temps pour m'aider.

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 110
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par papajoker Voir le message
    Le minimum est de lancer ta ligne de commande (ExecStart) dans un terminal pour voir
    Si ok, après reboot, avant de se connecter en graphique, tu peux le lancer manuellement en tty pour voir si il se lance bien sans pile graphique



    Il est possible qu'avec ton executable, windev désire quand même une pile graphique. Ce qu'indique ton erreur "not connect to display" "no xcb". il faut voir avec le forum windev...


    Donc c'est actuellement un service système qui n'a accès à aucune pile graphique (elle n'est pas encore créée)
    il est possible d'avoir des services systemd lancés dans le contexte utilisateur (donc après connexion et avec pile graphique), mais ils ont alors les droits de cet utilisateur (peut-être suffisant pour toi?); Service placé dans le home et lancé/installé avec "--user"
    J'ai refait un projet complet plus léger en terme de code afin de débugger plus facilement les éventuels problèmes que je vais rencontrer dans ma prochaine version d'installation de Debian.

    Comme évoqué dans ma réponse au post de gabriel21, j'ai vu que la VM d'exploitation était installée sans environnement graphique, je vais donc en faire de même. La différence va venir de l'outil que je vais utiliser pour la virtualisation.
    Me concernant, cela va être VirtualBox (gratuit ) contre VMWare pour la machine en exploitation, je ne pense pas qu'il va y avoir un impact sur la façon de mettre en service mon programme, mais bon ... Les surprises, depuis que je me suis mis à travailler sous Linux et une toutes les secondes.

    J'ai pris en compte tes remarques, je vais voir si Windev oblige l'installation d'une pile graphique (je reprends ton terme).

    Je m'empresse de faire les tests et je reviens très vite pour vous faire un retour.

    Merci pour tout

  8. #8
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 174
    Points : 4 602
    Points
    4 602
    Par défaut
    ok c'est donc un serveur linux sans poste utilisateur.
    Donc tu n'as pas de pile graphique et il te faut absolument un programme qui n'en exige pas. Installer une pile graphique (x11,wayland) sur le linux ne va rien changer (car jamais lancée sur un serveur)
    Citation Envoyé par Jb_One36 Voir le message
    J'ai refait un projet complet plus léger en terme de code afin de débugger
    Sans doute inutile ! Il faut juste savoir si il est possible de générer des applications qui n'exigent pas une pile graphique. Une option/directive de compilation dans windev ou dans config du projet ? (je ne connais pas non plus windev)
    Si une telle option n'existe pas, il faut changer de langage (aussi simple que cela)
    $moi= ( !== ) ? : ;

  9. #9
    Membre chevronné Avatar de gabriel21
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2007
    Messages : 525
    Points : 1 900
    Points
    1 900
    Par défaut
    Citation Envoyé par Jb_One36 Voir le message
    Me concernant, cela va être VirtualBox (gratuit ) contre VMWare pour la machine en exploitation, je ne pense pas qu'il va y avoir un impact sur la façon de mettre en service mon programme, mais bon ... Les surprises, depuis que je me suis mis à travailler sous Linux et une toutes les secondes.
    Tu n'aura pas de différence notable entre VirtualBox ou VmWare, sauf si tu utilise du matériel exotique. Ce qui ne semble pas être ton cas.
    Est ce que windev permet de créer des application sans IHM? Je ne suis pas un expert dans ce produit. Je fais de l'administration système et je code un peu en C++/QT mais directement avec des outils beaucoup moins intégré => plus de liberté, mais aussi plus de complexité.
    Si ce n'est pas le cas, je partage l'avis de papajoker : change d'outils, cela te prendra moins de temps et d'énergie.
    "Les cons, ça ose tout. C'est même à ça qu'on les reconnaît." Michel Audiard - Les tontons flingueurs
    Site Web : https://www.admin-libre.fr

Discussions similaires

  1. [Web Service] example avec base Oracle 10g
    Par osmoze dans le forum Services Web
    Réponses: 3
    Dernier message: 19/04/2006, 19h20
  2. [Axis] Utilisation d'un service soap avec Axis.
    Par avalone dans le forum Services Web
    Réponses: 3
    Dernier message: 14/02/2006, 15h17
  3. [Système]Service windows avec java
    Par stephpr44 dans le forum Général Java
    Réponses: 4
    Dernier message: 24/11/2005, 20h50
  4. [Eclipse] créer un service Windows avec Eclipse
    Par tck-lt dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 19/09/2005, 17h28
  5. service NT avec interface (IHM)
    Par cash3000 dans le forum Windows
    Réponses: 14
    Dernier message: 06/06/2005, 09h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo