PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → Daemon Linux développé en Windev 22
Daemon Linux développé en Windev 22
Started by Eric67, Aug., 19 2017 2:44 PM - 4 replies
Registered member
637 messages
Popularité : +36 (36 votes)
Posted on August, 19 2017 - 2:44 PM
Bonjour,

Quelqu'un a-t-il déjà réussi à faire tourner un daemon Linux développé depuis WD22 ?

J'ai développé un service (daemon sur Linux) dont le code d'initialisation s'exécute correctement si je lance le service depuis la console via la commande ./MonService
Je trace les différents blocs de code avec la fonction dbgSortieStandard.

Première anomalie, le Bloc "Exécution du service de MonService (appelé en boucle)" ne s'exécute pas en boucle mais une seule fois !
J'ai une fonction ServiceTemporise(100) en fin de bloc.

Puis le code de fermeture est exécuté.

Première question, pourquoi le code de la section "Exécution du service de MonService (appelé en boucle)" ne s'éxécuute pas en boucle tel que décrit dans la documentation ? https://doc.pcsoft.fr/?1000017099


Si je place le daemon dans /etc/init.d et que j'essaye de démarrer le service (/etc/init.d/MonService start), j'ai le même comportement ; Il s'exécute mais ne boucle pas.
Le code de Fermeture du service est exécuté ; par contre le code d'Arrêt du service ne l'est pas.

Le service ne s'installe pas non plus.

J'ai bien la fonction ServiceDémarre en fin de code d'initialisation et la fonction renvoie bien un service démarré.
// Démarrer le service
//
SI ServiceDémarre("MonService","","192.168.0.45") ALORS
dbgSortieStandard("Service started ok")
SINON
dbgSortieStandard("KO error starting service")
FIN

Une idée ?

Cordialement,
Eric.

--
Eric DELATTRE
http://www.yoosite.fr
Message modified, August, 19 2017 - 2:46 PM
Posted on October, 09 2017 - 3:31 PM
Bonjour,
Je rencontre exactement le même problème.
Avez vous trouvé une solution depuis ?
Merci.
Registered member
637 messages
Popularité : +36 (36 votes)
Posted on October, 10 2017 - 11:11 AM
Bonjour,

Non pour l'installation du daemon. Mais j'ai contourné le problème par le biais d'un cron, ce qui suffisait pour mon besoin à l'époque.

Cdlt - Eric.

--
Eric DELATTRE
http://www.yoosite.fr
Message modified, October, 10 2017 - 11:13 AM
Registered member
21 messages
Popularité : +2 (2 votes)
Posted on December, 27 2020 - 2:28 PM
Bonjour,
J'ai le même problème que celui décrit par Jean Louis en 2017. Y aurait-il du nouveau?
Bien cordialement,
Marc
Posted on December, 28 2020 - 10:59 AM
Le 19/08/2017 à 12:44, Eric67 a écrit :
Bonjour,

Quelqu'un a-t-il déjà réussi à faire tourner un daemon Linux développé
depuis WD22 ?

J'ai développé un service (daemon sur Linux) dont le code
d'initialisation s'exécute correctement si je lance le service depuis la
console via la commande ./MonService
Je trace les différents blocs de code avec la fonction dbgSortieStandard.

Première anomalie, le Bloc "Exécution du service de MonService (appelé
en boucle)" ne s'exécute pas en boucle mais une seule fois !
J'ai une fonction ServiceTemporise(100) en fin de bloc.

Puis le code de fermeture est exécuté.

Première question, pourquoi le code de la section "Exécution du service
de MonService (appelé en boucle)" ne s'éxécuute pas en boucle tel que
décrit dans la documentation ? https://doc.pcsoft.fr/?1000017099


Si je place le daemon dans /etc/init.d et que j'essaye de démarrer le
service (/etc/init.d/MonService start), j'ai le même comportement ; Il
s'exécute mais ne boucle pas.
Le code de Fermeture du service est exécuté ; par contre le code d'Arrêt
du service ne l'est pas.

Le service ne s'installe pas non plus.

J'ai bien la fonction ServiceDémarre en fin de code d'initialisation et
la fonction renvoie bien un service démarré.
// Démarrer le service
//
SI ServiceDémarre("MonService","","192.168.0.45") ALORS
   dbgSortieStandard("Service started ok")
SINON    dbgSortieStandard("KO error starting service")
FIN

Une idée ?

Cordialement,
Eric.

--
Eric DELATTRE
http://www.yoosite.fr


Bonjour,
Pour créer un service il faut créer le fichier de description du service.
Exemple pour le service X :
Le fichier ServiceX.service est crée sous /lib/systemd/system
Son contenu : cat ServiceX.service
[Unit]
Description=Service de stockage et d'émission d'X
After=network.target
[Install]
WantedBy=multi-user.target
[Service]
Type=forking
ExecStart=/home/bonnevia/app/ServiceX --SERVICE ServiceX
PIDFile=/var/run/ServiceX.pid

Premier démarrage :
systemctl enable <nom du service>.service

Voir la documentation plus complète :
https://doc.ubuntu-fr.org/creer_un_service_avec_systemd

Bon Dev
Georges