Forum Programmation.shell Plusieurs questions sur le shell ou autre

Posté par  .
Étiquettes : aucune
1
30
oct.
2008
Bonjour,

1/ comment savoir si un processus utilise tel ou tel fichier ?

2/ Même question je pense pour savoir qui utilise la cam pour débloquer celle-ci

3/ comment savoir si un processus est attaché à une fenêtre ?

4/ est il possible de lancer une commande en tache de fond, de se deloguer mais que la commande tourne en arrière (style mise à jour du système), il me semblait que c'était possible mais je ne me souviens plus comment faire. L'idée est de me loguer en root, de faire une mise à jour du système en laissant le possibilité aux utilisateurs de se loguer quand même.

Merci de vos réponses
  • # lsof

    Posté par  (site web personnel) . Évalué à 4.

    1 -> lsof

    2 -> lsof

    4 -> screen ?

    ウィズコロナ

  • # Question 4

    Posté par  (site web personnel) . Évalué à 2.

    Pour la question 4 peut etre que cela pourra t'aider :

    Lorsque l'on lance une commande comme ceci

    (xeyes &)&

    Et bien le processus est mis en arrière plan et son pere devient init (le grand papi de tout les process). Du coup le processus n'est pas tué lors de la mort du shell qui l'a lancé. Il vaut mieux rediriger sortie et erreur standard vers un fichier (/dev/null ou autre) car le proccessus risque de se fermer vu qu'il n'arrivera plus a ecrire sur sa sortie.
    • [^] # Re: Question 4

      Posté par  (site web personnel) . Évalué à 6.

      o_O ah tiens c'est une nouvelle manière d'écrire
      nohup xeyes &

      ?
      'fin bon, pour une application graphique, vu qu'elle est attachée à un DISPLAY, je ne lui donne pas cher à la déconnexion / reconnexion d'un utilisateur...
      mieux vaut utiliser screen et des commandes en mode texte
      • [^] # Re: Question 4

        Posté par  (site web personnel) . Évalué à 1.

        A vrai dire j'utilise cette façon de faire depuis très longtemps et je ne sais plus d'ou ca vient.

        Je viens de demander à mon collègue et de vérifier dans le man de bash.

        Lorsque l'on lance une série de commande entre parenthèse, elles sont éxecutées dans un sous-shell (cf le paragraphe "Commandes composées" dans le man debian de bash). Donc la commande est mise en arrière plan de ce sous-shell et ce sous-shell est en arrière plan du shell principal.

        Du coup je ne sais trop comment mais le père de la commande devient init. De plus ce soit-disant sous-shell n'apparait pas dans ma liste des processus donc bon... Si quelqu'un a une piste

        nohup je ne connaissais pas, ca m'a l'air mieux "documenté" donc je pense que je vais utiliser cela à l'avenir; merci pour l'info
  • # Quelle efficacité

    Posté par  . Évalué à 2.

    ben merci ça va vite les réponses, je teste cela et encore merci

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.