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

Administration système Discussion :

Processus.. adoption d'un processus par init


Sujet :

Administration système

  1. #1
    Membre actif

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 77
    Points : 204
    Points
    204
    Par défaut Processus.. adoption d'un processus par init
    Bonjour,

    Quand on ferme une fenetre de terminal, ca ferme généralement également les processus lancés depuis celle ci (également ceux en tache de fond) :
    Cependant je crois que c'est possible de faire adopter des processus par le processus init (0)
    Quelqu'un pourrait confirmer ce que je dis ?
    et si c'est possible comment faire ?

    Merci

  2. #2
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    Il faut regarder du cote de nohup...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    man nohup
    nohup xeyes &
    exit

    Smortex

    Les FAQ Assembleur - Linux
    In The Beginning Was The Command Line Neal Stephenson

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 23
    Points : 26
    Points
    26
    Par défaut
    J'ai l'impression qu'avec MDK 10, le simple fait de rajouter & à la fin détache le programme de la console parent... par exemple si je lance konqueror &, et que je ferme ensuite la console, konqueror reste...

  4. #4
    Membre actif

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 77
    Points : 204
    Points
    204
    Par défaut
    Merci Smortex, je vais essayer ca..

    OracleConcept : Apparement ca dépend plutot des fenêtres de terminal.. ou des shells..

  5. #5
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    En fait, le comportement par défaut d'un processus "fils" lorsque son processus "père" se termine, est d'être adopté par le processus "init", mais pour les processus lancés depuis des sessions graphiques, ça dépend du gestionnaire et des choix qu'ils ont fait...

    Ce qu'il faudrait vérifier, c'est que quand on ferme une fenêtre de terminal, il n'envoie pas un "kill -9" à tous les processus qu'elle contient...
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    FAUX

    le comportement par defaut normal et lors de la mort du père le fils est tué par le system (signal SIGTERM et SIGCHILD)

    la commande "nohup" "rattache" le process a init et permet donc la mort du père d'origine sans tué le(s) fils.

    Dans le cas de KDE c'est une questions d'implementation de certain programme tel konqueror : tout comme l'exploreur sous Windows, konqueror fait parti integrante de KDE (son moteur pour le moins) et donc ce n'est pas un "vrai" processus mais une thread du prog principale.
    Marc
    Slackware for ever ......
    BASH - KSH ( http://marcg.developpez.com/ksh/ )

  7. #7
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    Tout est explique dans la doc de nohup :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
         The nohup utility invokes utility with its arguments and at this time
         sets the signal SIGHUP to be ignored.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
         Some shells may provide a builtin nohup command which is similar or iden-
         tical to this utility.  Consult the builtin(1) manual page.
    Et comme le dit MarcG, certains processus sont en fait des Thread, et d'autres se forkent d'eux meme, tel que gvim, si vous le lancer sans rien deriere (pas de &), vous aurez qund meme acces a votre terminal et pourrez le fermer sans tuer gvim...

    Smortex

    Les FAQ Assembleur - Linux
    In The Beginning Was The Command Line Neal Stephenson

  8. #8
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Citation Envoyé par MarcG
    FAUX

    le comportement par defaut normal et lors de la mort du père le fils est tué par le system (signal SIGTERM et SIGCHILD)
    Pas d'accord... rédige un programme qui fait un fork(), puis qui dans le fils fait un traitement assez long (plus long que la durée de vie du père).
    Si il n'y a pas de wait dans le père, il va terminer son exécution et mourrir. Le fils quand à lui sera rataché au processus init et terminera ce qu'il a à faire !
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  9. #9
    jmv
    jmv est déconnecté
    Membre confirmé Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Points : 603
    Points
    603
    Par défaut
    Citation Envoyé par MarcG
    FAUX
    le comportement par defaut normal et lors de la mort du père le fils est tué par le system (signal SIGTERM et SIGCHILD)
    C'est Pongten qui a raison, par defaut un processus fils continue même si son père est terminé. Mais pour les shell (texte ou graphique) c'est différents, lorsqu'un shell se termine, il envoie le signal SIGHUP à tous les processus de son groupe (lancé depuis le même shell). D'où l'utilité de la commande nohup dans certains cas

  10. #10
    Membre actif

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 77
    Points : 204
    Points
    204
    Par défaut
    Citation Envoyé par Smortex
    Il faut regarder du cote de nohup...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    man nohup
    nohup xeyes &
    exit
    euh.. tu es sur que c'est "nohup" la commande :
    man nohup me donne :
    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
     
    NOHUP(1)                         User Commands                        NOHUP(1)
     
    NAME
           nohup - run a command immune to hangups, with output to a non-tty
     
    SYNOPSIS
           nohup COMMAND [ARG]...
           nohup OPTION
     
    DESCRIPTION
           Run COMMAND, ignoring hangup signals.
     
           --help display this help and exit
     
           --version
                  output version information and exit
    et après AUTHOR, ...
    Il n'y a aucune options ? ... ?

    Si par exmeple j'ai un processus déja existant.. et je veux que celui ci soit adopté par init, c'ets pas possible ?

  11. #11
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    Ta doc me semble light.... Sous FreeBSD, j'en ai un peu plus :
    NOHUP(1) FreeBSD General Commands Manual NOHUP(1)

    NAME
    nohup -- invoke a utility immune to hangups

    SYNOPSIS
    nohup [--] utility [arguments]

    DESCRIPTION
    The nohup utility invokes utility with its arguments and at this time
    sets the signal SIGHUP to be ignored. If the standard output is a termi-
    nal, the standard output is appended to the file nohup.out in the current
    directory. If standard error is a terminal, it is directed to the same
    place as the standard output.

    Some shells may provide a builtin nohup command which is similar or iden-
    tical to this utility. Consult the builtin(1) manual page.

    ENVIRONMENT
    The following variables are utilized by nohup:

    HOME If the output file nohup.out cannot be created in the current
    directory, the nohup utility uses the directory named by HOME to
    create the file.

    PATH Used to locate the requested utility if the name contains no `/'
    characters.

    DIAGNOSTICS
    The nohup utility exits with one of the following values:

    126 The utility was found, but could not be invoked.

    127 The utility could not be found or an error occurred in nohup.

    Otherwise, the exit status of nohup will be that of utility.

    SEE ALSO
    builtin(1), csh(1), signal(3)

    STANDARDS
    The nohup utility is expected to be IEEE Std 1003.2 (``POSIX.2'') compat-
    ible.

    BUGS
    Two or more instances of nohup can append to the same file, which makes
    for a confusing output.

    FreeBSD 5.2.1 July 19, 2001 FreeBSD 5.2.1
    Bref, ca sert a lancer un programme en ne lui fesant pas tenir compte d'un signal SIGHUP... Ca ne peux pas le dire a un programme qui tourne deja... Je ne connais pas d'utilitaires permettant de faire ce que tu desire...

    Smortex

    Les FAQ Assembleur - Linux
    In The Beginning Was The Command Line Neal Stephenson

  12. #12
    Membre actif

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 77
    Points : 204
    Points
    204
    Par défaut
    Merci smortex et aux autres personnes également

  13. #13
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    Oué nohup est bien pratique.
    Bon ceci dit j'ai un problème j'ai récupéré sirc qui un client irc en ligne de commande.
    Je voulais le lancer puis quitter la session sans deconnecter le client irc.
    Je fais donc un nohup sh sirc .....
    ca se passe bien mais quand je quitte la session paf, je suis déconnecté de irc et le processus s'arrete... zarb.
    C ecrit en perl, je sais pas trop comment les processus sont gérés.

    Merci

  14. #14
    ALT
    ALT est déconnecté
    Membre émérite
    Avatar de ALT
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2002
    Messages
    1 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 234
    Points : 2 338
    Points
    2 338
    Par défaut

    Là j'ai pas compris : ça sert à quoi de conserver un client IRC hors connexion ?

    En tout état de cause, si ça le déconnecte, c'est peut-être parce qu'un autre processus indispensable est arrêté automatiquement à la déconnexion.
    « Un peuple qui est prêt à sacrifier un peu de liberté contre un peu de sécurité, ne mérite ni l'une, ni l'autre, et finira par perdre les deux. »
    Attribué indistinctement à :
    Thomas Jefferson
    Benjamin Franklin
    Albert Einstein !

  15. #15
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    En gros c'est pour faire un bot

  16. #16
    ALT
    ALT est déconnecté
    Membre émérite
    Avatar de ALT
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2002
    Messages
    1 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 234
    Points : 2 338
    Points
    2 338
    Par défaut
    Ah bon.

    Merci.


    Je me coucherai un peu moins tarte ce soir.





    Enfin... si c'est possible...
    « Un peuple qui est prêt à sacrifier un peu de liberté contre un peu de sécurité, ne mérite ni l'une, ni l'autre, et finira par perdre les deux. »
    Attribué indistinctement à :
    Thomas Jefferson
    Benjamin Franklin
    Albert Einstein !

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 30/10/2012, 21h34
  2. comment avoir le ID processus d'une application connue par nom
    Par azstar dans le forum Windows Mobile
    Réponses: 3
    Dernier message: 02/05/2012, 19h04
  3. Réponses: 3
    Dernier message: 03/04/2008, 19h00
  4. Réponses: 0
    Dernier message: 20/11/2007, 11h58

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