• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Bug or Feature: GNU ps -o beeinflusst Werte

panamajo

Guru
Ich programmiere gerade ein munin plugin und bin dabei auf ein m.E. merkwürdiges Verhalten von ps gestoßen:
Code:
jo@l33t ~> ps -u haldaemon -o euid,user,comm
 EUID USER     COMMAND
  101 101      hald
  101 101      hald-addon-acpi
jo@l33t ~> ps -u haldaemon -o euid,comm,user
 EUID COMMAND         USER
  101 hald            haldaemon
  101 hald-addon-acpi haldaemon
Im 1. Aufruf wird statt des erwarteten Benutzernamens die numerische UID ausgegeben, beim 2. Aufruf kommt das erwartete Ergebnis.

Das die Option -o zur Bestimmung der Reihenfolge den ausgegebenen Wert beinflusst ist IMHO ein Fehler.
Tritt aber auch nicht immer auf: betroffen sind hier nur 2 Benutzer, haldaemon und und messagebus (UID 100, 101).

Ich dachte erst die beiden User hätten vllt. keinen Eintrag in /etc/passwd bzw. shadow, aber da stimmt alles.

Obiges Beispiel ist zum Posten verkürzt, tatsächlich habe ich die Prozesse aller User ausgegeben, also
Code:
ps -e --sort=uid -o euid,user,comm
ergibt eine leicht durchsuchbare Ausgabe mit tlw. numerischen Angaben für user
Code:
ps -e --sort=uid -o euid,comm,user
liefert ein korrektes Ergebnis.

Kann das jemand reproduzieren? Oder sogar eine Erklärung geben?
Verwendet wurde procps-3.2.7 unter Linux, openSUSE 10.3 x86_64
 

Spasswolf

Member
Ich kann das mit procps-3.2.6 und procps-3.2.7 auf Gentoo amd64 reproduzieren. Betroffen sind hier auch die user messagebus und haldaemon (101,102).
 
OP
panamajo

panamajo

Guru
Hm, interessant.
Kann das mal jemand auf 32bit arch (und vorhandenen UID ab 100) überprüfen?
 
Jede Spalte hat eine typische Größe (USER: 8) und eine maximale Größe - letztere wird nur verwendet wenn die Spalte die letzte rechts ist.
Und weil "haldaemon" länger ist als das 8 Zeichen breite USER-Feld, wird statt des Usernamen nur die UID angezeigt.
 
Oben