Comment connaitre la date de demarrage d'un process ?
6 réponses
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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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.
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
[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
"Gael Trinquart" <gaelt@yahoo.com> a écrit dans le message de
news:50c0d466.0307030200.2c43fd13@posting.google.com...
| 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
"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
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.
"[SauroN]" <titi@toto.com.invalid> wrote in message news:<be13c3$dca$1@s1.read.news.oleane.net>...
ps -o stime,comm
et si le process est la depuis plus de 24h, alors ca n affiche que la date
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.
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.
Stephane CHAZELAS <stephane_chazelas@yahoo.fr> wrote in message news:<slrnbg83lg.3v.stephane_chazelas@pcchazelas.free.fr>...
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é.
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.
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
Le 4 Jul 2003 03:02:06 -0700, Gael Trinquart <gaelt@yahoo.com> écrivait :
"[SauroN]" <titi@toto.com.invalid> wrote in message news:<be13c3$dca$1@s1.read.news.oleane.net>...
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.