[linux-l] Weltzeituhr

Frank Reker frank at reker.net
So Nov 5 01:22:10 CET 2006


Am Sat 04. Nov 2006 14:24 +0000 schrieb Steffen Dettmer:

>* Frank Reker wrote on Fri, Nov 03, 2006 at 02:20 +0100:
>> jup, kann man aber abfangen. erstens kann man mit ps pruefen, ob der
>> name hinter der pid auch dem prozess gehoert, den man killen will.
>> wenn man xclock killen will, die pid gehoert ploetzlich konquerer
>> wohl besser nicht killen. 
>
>Wie implementiert man das portabel und sicher in C? Sowas im rc-script
>zu machen, ist schon OK, finde ich.

portabel? - gar nicht. wenn's um prozess-informationen geht, ist das
unix-umfeld nicht besonders standardisiert. zwar unterstuetzen fast
alle unixe ein /proc fs aber was fuer infos wo stehen macht jeder
anders. wenn, dann nimm das prog. ps, aber auch hier gibt es
unterschiede. wenn du sowas in c schreiben willst, kommst du nicht
um einen haufen von #ifdef's umhin, um es fuer jedes unix separat
zu machen.


>> ausserdem, und noch besser, die timestamps kontrollieren. ist die
>> datei aelter als der prozess, dann ist die pid veraltet, andernfalls
>> gut. sicher koennte zwischenzeitlich jemand die systemuhr verstellt
>> haben, oder ein touch auf's pidfile, aber dann kann ich nur noch
>> sagen: "shit happens".
>
>klingt nach einer guten Idee... Wie kriegt man das Alter eines Prozesses
>raus? "touch" oder andere kriminelle Tricks müssen eh nicht

mit ps oder in /proc/$pid/stat
z.b. ps -eo pid,args,start_time
mit irgendwelchen opitonen kriegste auch ne laengere datums-ausgabe.
aber wie mir soeben bewusst wurde, geht das nicht auf laptops, bzw. 
rechnern die in suspend geschaltet werden. :-(
linux speichert naemlich nicht die start-zeit des prozesses, sondern nur
die uptime, und die bleibt stehen, wenn der rechner im suspend-modus ist.
damit erhaelst du eine falsche start zeit des prozesses und obiger test
schlaegt fehl.


-- 
Don't worry be happy ...
Ciao Frank
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 189 bytes
Beschreibung: nicht verfügbar
URL         : <https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/attachments/20061105/01b63cad/attachment.sig>


Mehr Informationen über die Mailingliste linux-l