#1 Le 29/07/2008, à 14:22
- marOne
surveiller un processus sous ubuntu
Bonjour
svp, je veux savoir comment surveiller l'execution de certains processus sous linux?
par exemple : je veux avoir en resultat lors de l'execution de la commande (ls,lp...) l'heure de l'execution,ses parametres ...
merci.
#2 Le 29/07/2008, à 15:03
- schaars
Re : surveiller un processus sous ubuntu
Bonjour
Je vois deux solutions :
1) soit tu veux surveiller un programme en particulier (toujours le même), par exemple cp. Dans ce cas tu modifies le programme cp pour qu'il "surveille" puis qu'il lance le vrai programme cp avec les arguments passés au faux programme cp.
Pour cela tu peux faire un script ou un programme en C.
2) Tu veux surveiller n'importe quel programme : tu créés un démon/module lancé en root qui récupère les infos des programmes qui tournent en ce moment dans /proc/[pid]/ et qui enregistre quelque part toutes les infos de tous les programmes. Par contre il faut arriver à faire qu'il regarde lorsqu'un nouveau programme est lancé. Avec un module pas de souci on peut savoir quand on lance un nouveau processus (au pire faut patcher le noyau) mais avec un démon il faut regarder à intervalles réguliers et donc on ne voit pas les programmes qui durent un très court instant.
Le linux des uns est l'OS/2 des autres (Thom E. Gemcity)
Hors ligne
#3 Le 29/07/2008, à 15:50
- marOne
Re : surveiller un processus sous ubuntu
merci, c'est très pertinent.
dans le cas où on "surveille" un programme particulier. prenant l'exemple de "cp".
l'idée donc est d'écrire un programme portant le meme nom (cp). je dois donc coper le fichier "cp" de" /bin" et le remplacer par le nouveau qui executera ce dernier n'est ce pas?
#4 Le 29/07/2008, à 16:31
- schaars
Re : surveiller un processus sous ubuntu
Oui c'est ça ! Pour savoir quel est le programme utilisé lorsque tu tapes une commande, tapes which <la commande>. Par exemple :
$ which cp
/bin/cp
$ which iwconfig
/sbin/iwconfig
$ which wine
/usr/bin/wine
$ which glines
/usr/games/glines
Dernière modification par schaars (Le 29/07/2008, à 16:31)
Le linux des uns est l'OS/2 des autres (Thom E. Gemcity)
Hors ligne
#5 Le 29/07/2008, à 17:41
- marOne
Re : surveiller un processus sous ubuntu
ok merci, c'est resolu mnt.
#6 Le 29/07/2008, à 17:46
- Link31
Re : surveiller un processus sous ubuntu
l'idée donc est d'écrire un programme portant le meme nom (cp). je dois donc coper le fichier "cp" de" /bin" et le remplacer par le nouveau qui executera ce dernier n'est ce pas?
Surtout pas.
Pour surveiller un processus, il y a :
- "ps aux --forest", "top", et tout ce qui se trouve dans /proc/[pid du processus]
- sh -x le_script.sh (pour les scripts shell)
- "strace [commande]", ou "strace -p [pid du processus]" pour un processus déjà lancé
strace est de loin la meilleure solution quand on sait s'en servir. Voir la page de man pour connaître les options permettant de filtrer l'énorme quantité d'informations que renvoie cette commande.
Par exemple : "strace -e trace=process [commande]" listera toutes les opérations de lancement/arrêt de programmes effectuées par le processus surveillé.
L'option -f permet de suivre également les sous-processus.
Dernière modification par Link31 (Le 29/07/2008, à 17:49)
Hors ligne