Benutzer eines anderen Prozesses herausfinden



  • Hallo !

    Ich müßte aus einem C-Programm Informationen über einen anderen Prozess herausfinden. Der Benutzer würde mir schon reichen. Die PID des Prozesses ist bekannt, ich kenne aber keine Funktion, die mir die Information liefert.

    Mir ist bekannt, daß ich die Infos auch aus dem /proc-Filesystem holen kann, mir wäre aber eine andere Lösung lieber. Oder gibt es eine Funktion die ähnlich dem Kommandozeilen-Befehl "procinfo" die Daten liefert, z.B. in eine Struktur ?

    MfG

    Ben



  • Du musst ins /proc Verzeichnis sehen
    Dort ist für jeden Prozess ein Verzeichnis vorhanden. Der Benutzer, besser seine UID steht in /proc/<PID>/status. Den Usernamen kannst du dir dann aus
    /etc/passwd holen.
    Das ist die einfachste Lösung, warum willst du Sie nicht verwenden.



  • Hallo grimmsen !

    Danke für dich fixe Antwort, habe es jetzt so ähnlich gemacht wie du sagtest. War doch halb so wild *g*.

    Hole jetzt die UID aus dem proc und dann per getpwuid(uid) die passwd-Struktur in der ich den Namen finde.

    Danke nochmal.

    Ben



  • Ich hätte da aber noch ne Frage bezüglich proc:

    Soviel ich weiß greift top ja auch auf diese Dateien zu. Ist es möglich dort auch die CPU-Last für einzelne Prozesse festzustellen, wie top es auch anzeigt ? Oder gibt es da ne andere Methode ?

    Ich bräuchte das ganze für eine Art eigenen Prozessmonitor.

    Gruß,

    Ben



  • *schiebnachoben*

    Hat denn keiner nen Tipp als Antwort auf meine letzte Frage wegen der CPU Usage ?

    Muß ja nicht aus /proc kommen, vielleicht gibts es auch ne andere Möglichkeit.

    MfG

    Ben



  • schau doch nach, wie top das macht

    strace top 2> top.log
    

    oder du schaust in den Source Code



  • @kingruedi: Vielen Dank für den Tipp...mal wieder einen neuen Linux-Befehl kennengelernt *g*. Ist halt alles was neu und ungewohnt.

    MfG

    Ben


Anmelden zum Antworten