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

Réseau C Discussion :

[Question] serveur en tache de fond


Sujet :

Réseau C

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2003
    Messages : 25
    Points : 20
    Points
    20
    Par défaut [Résolu][Question] serveur en tache de fond
    Bonjour,
    j'écris un serveur qui doit tourné en tache de fond. Celui-ci fonctionne normalement lorsque je lance le serveur moi-même. J'ai donc modifié le fichier /etc/inittab pour qu'il se lance lorsque la machine boot. Lorsqu'un client effectue une requête sur ce serveur, je reçoit un message du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Failed to write //PI17418. Exiting.
    Est-ce que je dois utiliser la commande iotcl pour le détacher de sa console virtuelle ?
    Est-ce que le fait de ne pas être un démon empèche d'effectuer une connection sur ce serveur ?
    Peut-on effectuer un pipe entre deux processus lorsqu'on utilise une console virtuelle ?

    Merci de répondre à toutes ces questions.

  2. #2
    Membre habitué Avatar de Metal Tom
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 119
    Points : 129
    Points
    129
    Par défaut
    T'aurais du poser cette question sur le forum Linux.
    Tom

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2003
    Messages : 25
    Points : 20
    Points
    20
    Par défaut
    oui et non, c'est assez spécifique au c apparamment.
    De toute façon, j'ai envoyé le même post au forum linux et je n'ai pas de réponses.

    Merci quand même pour le conseil.

  4. #4
    Membre habitué Avatar de Metal Tom
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 119
    Points : 129
    Points
    129
    Par défaut
    Pour les pipes tu parlais de ou de ?
    C'est à dire la version shell ou la version C ?
    Tom

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 304
    Points : 253
    Points
    253
    Par défaut
    Salut
    Il faut que tu utilises le serveur inetd puisque ce que tu cherches a réaliser c'est un démon:
    Il faut donc que tu modifie le fichie /etc/inetd.conf et que tu lui ajoutes une ligne concernant le serveur que tu cherches à mettre en place.

    je te conseille vivement puisque tu es sur linux de taper man 8 inetd et man 8 inetd.conf.
    A bientot
    TOUT CE QUI EST VRAISEMBLABLE N'EST PAS FORCEMENT VRAI . MEFIEZ VOUS

  6. #6
    Membre à l'essai
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2003
    Messages : 25
    Points : 20
    Points
    20
    Par défaut
    Bonjour,
    c'est la vesion C. Par contre, je ne trouve pas le fichier /etc/inetd.conf.

    Bizarre

  7. #7
    Responsable technique

    Avatar de Anomaly
    Homme Profil pro
    Directeur
    Inscrit en
    Juin 2003
    Messages
    10 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Directeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 335
    Points : 130 269
    Points
    130 269
    Billets dans le blog
    1
    Par défaut
    Si ton démon n'est pas lié à un service internet primaire (ftp, http, ssh), il n'a pas sa place dans inetd. Par contre, si dans /etc/inittab cela ne fonctionne pas, as-tu essayé de le mettre dans rc.local, situé dans /etc/rc.d (je crois) ? Je soupçonne que le inittab est lancé beaucoup plus tôt que rc.local, ce qui expliquerait peut-être ton erreur bizarre.
    Responsable technique forum & site

    Si ce message (ou un autre) vous a aidé et/ou vous semble pertinent, votez pour lui avec

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 304
    Points : 253
    Points
    253
    Par défaut
    Salut ,
    Comme mon explication n'était pas tout a fait explicite la derniere fois je t'écris ce que j'ai pu trouver sur l'excellent livre "Programmation Systeme en C Sous Linux" de Christophe Blaes (celui qui a écrit presque tous les man de linux)
    Une alternative à la programmation d'un démon est l'emploi d'un super serveur réseau inetd. Ce démon lit au démarage sa configuration dans /etc/inetd.conf et assure toute la gestion de l'aspect serveurt TCP. Lorqu'une connexion a été établie, il invoque directement l'utilitaire demandé, en ayant redirigé grace a dup( ) son entrée et sa sortie standard vers la socket obtenue..
    ...
    Il nous faut alors ajouter un port dédié dans /etc/services et une ligne de lancement dans /etc/inetd.conf. On se reportera aux pages de manuel inetd et inetd.conf pour plus plus de détails sur la syntaxe.
    Cette fois ce doit etre plus clair pour toi.
    Dans ce livre, il propose une autre solution :
    Lorqu'un serveur de données TCP a atteint un niveau de maturité fonctionnelle suffisant pour présenter un interet global au niveau du système et du réseau , il est souvent intéressant de le faire fonctionner en tant que démon ... (ca c'est banalité, on le savait déjà)
    Un démon est un processus tournant en arrière plan sur le système ; sans terminal de contrôle. En général les démons sont démarrés lors de l'initialisation du système, et on les laisse s'executer jusqu'à l'ârret de la machine.
    1. tout d'abord le démon doit passer en arriere plan
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if (fork() != 0) exit(0);
    2. Le démon ne doit bloquer aucune partition du systeme , sauf s'il s'agit de ses propres répertoires.
    3. Le processus doit créer une nouvelle session et s'assuerr qu'il n'a pas de terminal de controle (utilisation de l'appel système setsid)
    4. Finalement le démon doit fermer tous les descripteurs de fichier que le schell aurait pu lui passer
    5. Dernier point: le démon n'affiche pas de message sur STDERR maisi l faudra employer le mécanisme syslog()
    Voile ce que je pouvais dire sur le sujet , enfin ce que j'ai pu lire sur le sujet
    Abientot.
    TOUT CE QUI EST VRAISEMBLABLE N'EST PAS FORCEMENT VRAI . MEFIEZ VOUS

  9. #9
    Membre à l'essai
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2003
    Messages : 25
    Points : 20
    Points
    20
    Par défaut
    Bonjour,
    Excusez-moi, je viens de trouver la réponse qui n'a rien avec le forum C
    Le message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Failed to write [nom de fichier]
    ce message signifie que le serveur lancé par init ne peux pas lire ou écrire un fichier.
    Trois explications : il ne trouve pas le fichier.
    il n'a pas les droits sur le fichier
    il n'a pas les droits sur le répertoire du fichier.

    A partir de là, il est facile de régler le problème.

    Je suis désolé, pour ces messages qui n'ont rien à avoir avec ce forum.

    Pour dire la vérité, je pensai que la commande pipe pouvais avoir une influence sur le fonctionnement des consoles virtuelles.
    La prochaine fois, j'essayerai d'avoir plus de rigueur dans mon travail.

    merci pour votre compréhension.

    ps : je réécrirai le même post dans le forum linux.

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 304
    Points : 253
    Points
    253
    Par défaut
    Citation Envoyé par Nicaisse
    Suite a ce qu'a dit Nicaisse
    J'avoue que je suis un peu décu, avec tout le mal que je m'étais donné. . C'est pas grave ca servira a quelq'un d'autre !!!

    A bientot et bonne continuation
    TOUT CE QUI EST VRAISEMBLABLE N'EST PAS FORCEMENT VRAI . MEFIEZ VOUS

  11. #11
    Membre habitué Avatar de Metal Tom
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 119
    Points : 129
    Points
    129
    Par défaut
    Il n'est jamais inutile de citer un extrait du "Blaess". C'est la bible !
    Tom

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 304
    Points : 253
    Points
    253
    Par défaut
    Salut
    Citation Envoyé par Metal Tom
    Il n'est jamais inutile de citer un extrait du "Blaess". C'est la bible !
    En accord avec toi !
    A bientot
    TOUT CE QUI EST VRAISEMBLABLE N'EST PAS FORCEMENT VRAI . MEFIEZ VOUS

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Serveur java en tache de fond
    Par momo84 dans le forum Langage
    Réponses: 2
    Dernier message: 16/05/2007, 11h59
  2. Réponses: 3
    Dernier message: 07/06/2005, 14h44
  3. [application tache de fond] lancer une application
    Par jean-jacques varvenne dans le forum Général Python
    Réponses: 5
    Dernier message: 25/03/2005, 11h13
  4. executer une page en tache de fond
    Par Invité(e) dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/01/2005, 16h23

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