Mailinglist Archive: opensuse-de (1126 mails)

< Previous Next >
Re: ps timestamp
  • From: David Haller <lists@xxxxxxxxxx>
  • Date: Tue, 18 Mar 2008 04:52:02 +0100
  • Message-id: <20080318035202.GA16747@xxxxxxxxxxxxxxxxxx>
Hallo,

Am Mon, 17 Mär 2008, Andre Hübner schrieb:
ich versuche grade krampfhaft per ps die Prozessliste auszugeben und die
Startzeit eines Prozesses als timestamp zu bekommen.
Ich bekomme immer ein Mar15 oder ein 15:23 bzw. 01:36:01 aber die Startzeit
nie als timestamp.
Mit timestamp rechnet es sich halt einfacher. Intern wird dass doch sicher
auch als timestamp gehalten, ich krieg aber leider die Ausgabe nicht hin.

Geht auch mit der aktuellen Version 3.2.7 von procps nicht, es gibt
schlicht kein Feld dafür. Siehe ps/output.c in den Quellen.

Man kann es aber "hacken", in dem man eine Lib bäckt, die ctime
umbiegt und diese dann per LD_PRELOAD lädt...

Dürfte praktischer sein, als mit anhand der PIDs die Startzeiten
selber aus /proc herauszupfriemeln...

Näheres bei Interesse (sind halt doch ein paar Zeilen, v.a. mit
Makefile, was in dem Fall nicht ganz unwichtig ist ;)

$ make
[..]
LD_PRELOAD=./libctimeastimestamp.so ps -eo lstart,cmd | tail -n 2
1205810553 ps -eo lstart,cmd
1205810553 tail -n 2
$

Weitere Felder kann man natürlich noch dazunehmen, das Feld für lstart
wird halt in ps/output.c von procps so breit formatiert, da kann man
nicht direkt was machen. Und ein anderes Format zu nehmen geht auch
nicht so einfach, da dort die Ausgabe von ctime noch manipuliert wird.

Ein Beispiel der Weiterverarbeitung:

$ LD_PRELOAD=./libctimeastimestamp.so ps -eo lstart,cmd \
| tail -n 3 | awk '{ $1 = strftime("["$1"] %c ", $1); print;}'
[1205811965] Tue Mar 18 04:46:05 2008 ps -eo lstart,cmd
[1205811965] Tue Mar 18 04:46:05 2008 tail -n 3
[1205811965] Tue Mar 18 04:46:05 2008 awk { $1 = strftime("["$1"] %c ", $1);
print;}

Also, bei Interesse melden, wobei wir in opensuse-programming-de
"onT" wären, da könnte ich die Details mailen...

X-Mailed & F'up 2 opensuse-programming-de

-dnh

--
Shin - Device for finding furniture in the dark.
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+unsubscribe@xxxxxxxxxxxx
Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken
Sie eine Mail an: opensuse-de+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups
References