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

Langage Perl Discussion :

écrire sur stdout aprés un fork


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2007
    Messages : 244
    Par défaut écrire sur stdout aprés un fork
    Bonjour à tous,

    Ma question est dans le sujet, j'aimerai pouvoir écrire certaines informations sur la sortie standard aprés avoir mit mon processus en arriere plan.

    voici ce que j'ai fais, tout fonctionne sauf le print sur STDOUT pourrivez vous m'aider ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    use strict;
     
    # Modules diverses
    use IO::Socket;
    use Getopt::Std;
     
    # Modules services
    use lib 'src';
    use Service;
    use Client;
    use Commands;
     
    # variables diverses
    my $daemon = 0;
    my $curdir = $ENV{'PWD'};
     
    $| = 1;
     
    # analyse
    my %opts;
    getopts('d',\%opts);
    if(defined($opts{'d'})) { $daemon = 1; }
    undef %opts;
     
    # si option -d mise en arriere plan
    if ($daemon) {
        use POSIX 'setsid';
     
        chdir '/'               or die "Impossible de mettre le repertoire courant sur root: $!";
        open STDIN, '/dev/null' or die "Impossible de lire /dev/null: $!";
        open STDOUT, '>/dev/null' or die "Impossible d'écrire vers /dev/null: $!";
        defined(my $pid = fork) or die "Impossible de mettre en arriere-plan: $!";
        exit if $pid;
        setsid                  or die "Impossible de démarrer une nouvelle session: $!";
     
        # creation du fichier contenant le pid
        open FILE, ">$curdir/uworld.pid" or die "Impossible de créer le fichier PID";
        print FILE "$$";
        close FILE;
        print STDOUT "test\n";
    }
     
    # creation du service
    my $tmp = Service->new();

  2. #2
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    ... Le but de la transformation en daemon que fait ton script c'est justement de se couper complètement de l'environnement dans lequel a été lancé le script, donc il ne doit pas écrire sur STDOUT !! Soit il écrit dans un log, soit il utilise éventuellement directement les périphériques de sorties comme les ttys, mais il n'écrit surtout pas sur STDOUT.

    --
    Jedaï

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2007
    Messages : 244
    Par défaut
    Ok,

    en fait je voudrai juste informer l'utilisateur que sont programme est lancé sous le pid numero XX.

  4. #4
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2007
    Messages : 244
    Par défaut
    salut,

    pourrais-tu m'en dire un peu plus à propos des ttys ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/12/2006, 21h59
  2. lire/écrire sur un port com sans le monopoliser
    Par totofweb dans le forum Windows
    Réponses: 4
    Dernier message: 26/07/2004, 14h23
  3. Boot sur lilo après réinstallation de windows
    Par FLB dans le forum Administration système
    Réponses: 2
    Dernier message: 20/06/2004, 13h49
  4. Réponses: 3
    Dernier message: 15/03/2004, 01h55
  5. [OS] Lire et écrire sur disquette
    Par trax44 dans le forum Programmation d'OS
    Réponses: 17
    Dernier message: 22/02/2004, 21h45

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