Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment connaitre la date de demarrage d'un process ?

6 réponses
Avatar
gaelt
Evidemment il y a la version Posix de 'ps -o' ou /proc pour les
systemes qui le supportent.

Existe-t'il une solution portable sur Linux, AIX, HP-UX et Solaris qui
permette, en specifiant un pid, de connaitre la date et le l'heure de
son demarrage ?

L'idee sous-jacente est l'identification certaine d'un pid (apres N
cycles d'allocation. 1 cycle = pid de 0 a 65535) en lui adjoignant une
date.

Le triplet (pid,date,heure) permettant d'etre sur qu'un pid a un
instant donne est bien celui specifie par le triplet et non celui d'un
autre programme s'etant fait attribue le meme pid apres N cycles.

Merci par avance.

6 réponses

Avatar
Stephane CHAZELAS
Je ne pense pas que tu trouveras quoi que ce soit de très
portable. Cela dit, si tu te limites à ces 4 systemes (Linux,
AIX, HPUX, Solaris), tu devrais pouvoir t'en sortir avec le
parsing du résultat de ps en gérant les cas particuliers

case `uname` in
Linux) stime=`ps -p "$pid" -o start=`;;
HPUX) stime=`UNIX95= ps -p "$pid" -f | awk '...'`;;
...
esac

regarde les pages de man de chaque. Je pense que tu auras
l'information (pas forcément à la seconde près) au moins pour
Linux, Solaris et HPUX. Pour AIX, je ne sais pas.

--
Stéphane
Avatar
[SauroN]
"Gael Trinquart" a écrit dans le message de
news:
| Evidemment il y a la version Posix de 'ps -o' ou /proc pour les
| systemes qui le supportent.
|
| Existe-t'il une solution portable sur Linux, AIX, HP-UX et Solaris qui
| permette, en specifiant un pid, de connaitre la date et le l'heure de
| son demarrage ?
|
| L'idee sous-jacente est l'identification certaine d'un pid (apres N
| cycles d'allocation. 1 cycle = pid de 0 a 65535) en lui adjoignant une
| date.
|
| Le triplet (pid,date,heure) permettant d'etre sur qu'un pid a un
| instant donne est bien celui specifie par le triplet et non celui d'un
| autre programme s'etant fait attribue le meme pid apres N cycles.
|
| Merci par avance.

man ps

ps -o stime,comm

et si le process est la depuis plus de 24h, alors ca n affiche que la date
Avatar
gaelt
"[SauroN]" wrote in message news:<be13c3$dca$...
ps -o stime,comm

et si le process est la depuis plus de 24h, alors ca n affiche que la date


HP-UX 11.00 ne possede pas l'option -o.

Avatar
gaelt
Stephane CHAZELAS wrote in message news:...
Je ne pense pas que tu trouveras quoi que ce soit de très
portable. Cela dit, si tu te limites à ces 4 systemes (Linux,
AIX, HPUX, Solaris), tu devrais pouvoir t'en sortir avec le
parsing du résultat de ps en gérant les cas particuliers

case `uname` in
Linux) stime=`ps -p "$pid" -o start=`;;
HPUX) stime=`UNIX95= ps -p "$pid" -f | awk '...'`;;
...
esac

regarde les pages de man de chaque. Je pense que tu auras
l'information (pas forcément à la seconde près) au moins pour
Linux, Solaris et HPUX. Pour AIX, je ne sais pas.


En fait, j'ai renoncé a utiliser ps car cela cree une dependance
externe qui peut eventuellement etre manipulée ou remplacée. Pour des
contraintes de sécurité, je ne peux pas introduire cette faiblesse
dans le systeme.

En fait, j'ai pris le parti de construire une fonction en C en
m'inspirant du code de top. C'est a dire utiliser (en parsant) /proc
sur Linux et Solaris, getprocs() sur AIX et pstat_getproc() sur HP-UX.
L'avantage des deux dernieres fonctions est qu'elles sont disponible
dans libc.a donc elles peuvent etre liées statiquement a mon
exécutable. Et ca tombe bien car je ne pouvais pas non plus utiliser
un shared objet pour les memes raisons de sécurité.

Gael.

Avatar
Stephane CHAZELAS
Le 4 Jul 2003 03:02:06 -0700, Gael Trinquart écrivait :
"[SauroN]" wrote in message news:<be13c3$dca$...
ps -o stime,comm

et si le process est la depuis plus de 24h, alors ca n affiche que la date


HP-UX 11.00 ne possede pas l'option -o.


Si si, il suffit juste de lui passer UNIX95 dans son
environnement.

UNIX95= ps -o pid=,... -p $$

par exemple

--
Stéphane


Avatar
gaelt
Stephane CHAZELAS wrote in message news:...
Le 4 Jul 2003 03:02:06 -0700, Gael Trinquart écrivait :
"[SauroN]" wrote in message news:<be13c3$dca$...
ps -o stime,comm

et si le process est la depuis plus de 24h, alors ca n affiche que la date


HP-UX 11.00 ne possede pas l'option -o.


Si si, il suffit juste de lui passer UNIX95 dans son
environnement.

UNIX95= ps -o pid=,... -p $$

par exemple


Merci.
Je ne m'en étais pas rendu compte lors du premier message.