Forum Programmation.shell Trouver le propriétaire d'un processus

Posté par  .
Étiquettes : aucune
0
9
déc.
2004
Bonjour,

J'aimerais trouver le propriétaire (owner) d'un processus précis.

Le shell script doit trouver le nom de l'utilisateur qui a lancé ppp. Donc, cat /var/run/ppp0.pid me renvoie le pid, mais ensuite, que faire ?

J'ai bien regardé ps, mais il ne donne que l'uid (et pas la bonne, en plus). Par exemple, si c'est l'utilisateur 501 qui lance pppd, ps m'affiche toujours un UID de 0.

Il y a bien la solution /proc/{PID}/status qui donne le bon utilisateur en ligne "Uid:", mais ca tient plus du bricolage (je ne sais pas vraiment utiliser grep / awk...), et en plus ça ne me donne qu'un uid et pas le nom.
  • # options de ps

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

    Regardes ps -o ruser par exemple
  • # ls -ld

    Posté par  . Évalué à 3.

    ls -ld /proc/pid, suivi d'un coup de tr et de cut.

    cela dit, ps -ef | grep ppp | grep -v grep marche aussi :

    $ps -ef | grep ppp | grep -v grep | cut -f 1 -d ' '
    coinkoin

    Et voila!
    • [^] # Re: ls -ld

      Posté par  . Évalué à 3.

      cela dit, ps -ef | grep ppp | grep -v grep marche aussi :

      Je préfère un ps -ef | grep [p]pp ...
  • # re

    Posté par  . Évalué à 1.

    stat -c %U /proc/$PID

    propre et efficace, toutefois, je ne me souviens plus si l'utilitaire stat est installé par défaut.
    • [^] # Re: re

      Posté par  . Évalué à 2.

      Elle ne marche pas, ta méthode. Elle renvoie un utilisateur, mais pas le bon (pas le ruser).

Suivre le flux des commentaires

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