Process Monitor équivalent pour Linux?

26

Existe-t-il un équivalent Unix / Linux de Process Monitor , que ce soit GUI ou CUI?

Si cela fait une différence, je regarde Ubuntu, mais s'il y a un équivalent pour d'autres systèmes (Mac, d'autres variantes Linux comme Fedora, etc.), connaître ces éléments serait également utile.

Modifier:

Process Monitor sert à surveiller les appels système (tels que la création ou l'écriture de fichiers), tandis que Process Explorer sert à surveiller l'état du processus (qui est comme System Monitor). Je demande le premier, pas le dernier. :-)

Mehrdad
la source

Réponses:

12

La console en attente est le cas top, mais il existe des alternatives comme ma préférée htopqui vous donnent un peu plus de flexibilité d'affichage et vous permettent quelques opérations supplémentaires sur les processus.

Une vue moins interactive mieux adaptée aux scripts serait le psprogramme et tous ses proches.

Modifier: sur la base de votre question clarifiée, vous remarquerez peut-être que stracegère les appels système surveillés par un processus donné, y compris toutes les opérations de lecture-écriture et les appels de fonction os. Vous pouvez l'activer sur la ligne de commande avant le programme que vous souhaitez suivre ou attacher à un processus en cours d'exécution en appuyant ssur un processus sélectionné dans htop.

Caleb
la source
4
Je crois que topc'est l'équivalent de Process Explorer , pas de Process Monitor , non?
Mehrdad
Que diriez-vous de l'exécuter et d'explorer la page de manuel. J'ai lu la liste des fonctionnalités à laquelle vous avez lié le moniteur de processus et cela ressemblait à htoptous les détails, à l'exception de la surveillance de la séquence de démarrage. Au mieux, il pourrait être activé en cours de route screen/ tmuxparfois à travers un cylindre de démarrage Linux.
Caleb
À la lumière de vos autres commentaires, vous pouvez également rechercher strace, à partir duquel vous pouvez activer htopen appuyant ssur un processus ou manuellement à partir de la ligne de commande lorsque vous exécutez quelque chose ou avec un identifiant de processus.
Caleb
12

Le grand-père de tous les moniteurs de processus est top, et de nombreux outils de surveillance du système sont appelés top. Par exemple, il iotopfaut surveiller les E / S disque, atoppour un tas de ressources système, powertoppour la consommation d'énergie.

Si vous souhaitez des informations plus détaillées, elles ne sont pas suivies par défaut. Pour voir ce que fait un processus particulier, faites appel straceà lui. Par exemple, si vous êtes uniquement intéressé par les accès au système de fichiers:

strace -s9999 -efile command_name    # trace a program during its whole execution
strace -s9999 -efile -p1234          # trace a running program with the given PID

straceest spécifique à Linux, mais d'autres systèmes ont un outil similaire: trusssous Solaris, ktraceou dtracesous * BSD, etc.

Pour regarder ce qui se passe dans un fichier particulier ou dans un répertoire ou une arborescence de répertoires particulier, utilisez la fonction inotify .

inotifywait -m .

Encore une fois, l'installation est spécifique à Linux, mais la plupart des autres unités ont un système similaire, par exemple kqueue sous * BSD et FAM (à l'origine de SGI mais maintenant disponible en tant qu'API sur de nombreux systèmes).

Pour regarder tous les appels système sous Linux, vous pouvez utiliser le sous-système d'audit . C'est relativement récent et il n'y a pas beaucoup de littérature sur le sujet; recherchez auditctlou lisez la auditctlpage de manuel . Il existe quelques exemples sur ce site: suivi des accès aux fichiers , suivi de l'exécution des processus .

Gilles 'SO- arrête d'être méchant'
la source
Êtes-vous sûr de faire référence à l'équivalent de Process Monitor et non à Process Explorer ?
Mehrdad
@Mehrdad: Je vois, j'étais allé par le nom et la mémoire d'un outil que j'avais utilisé sur Windows (qui est en fait Process Explorer), et non par la description réelle. Il est toujours dangereux de demander l'équivalent d'un programme particulier, mieux vaut demander un programme avec certaines fonctionnalités.
Gilles 'SO- arrête d'être méchant'
Merci. iotop -o -b -Pme montre quels processus effectuent des opérations d'E / S disque
bartolo-otrit
8

Vous voudrez peut-être jeter un œil à lsofet strace. Process Monitor de Sysinternal est en fait Filemon et Regmon combinés avec quelques améliorations supplémentaires. La topcommande ressemble plus à Process Explorer.

Oméga
la source
4

Vous recherchez probablement sysdig

Par exemple:

sysdig -A -c echo_fds
Maillot
la source
2

Je n'ai pas utilisé ce Process Monitor, mais pour autant que je sache, c'est la même chose que gnome-system-monitorsur un système Gnome. Si vous utilisez KDE, ils ont probablement quelque chose de similaire.

Keith
la source
Non, ils sont différents. Process Monitor accroche en fait les appels système, et n'affiche pas les informations de processus. (Ce à quoi vous faites référence est cependant accompli par Process Explorer.)
Mehrdad
Oh, eh bien j'utilise habituellement l'outil CLI vmstat pour des choses comme ça. Mais c'est à l'échelle du système, pas par processus.
Keith
1

dtrace4linux vous permet de tracer quelques bribes intéressantes du noyau. Bien qu'il semble être plus puissant que sysdig, il n'est malheureusement pas aussi bien comporté.

Rui F Ribeiro
la source