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 y a iotop
pour surveiller les E/S disque, atop
pour un tas de ressources système, powertop
pour la consommation d'énergie.
Si vous souhaitez des informations plus détaillées, elles ne sont pas suivies par défaut. Pour observer ce qu'est un processus particulier est en train de faire, appelez le strace
dessus. Par exemple, si vous n'êtes intéressé que 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
strace
est spécifique à Linux, mais d'autres systèmes ont un outil similaire :truss
sur Solaris, ktrace
ou dtrace
sous *BSD, etc.
Pour voir ce qui se passe dans un fichier particulier ou dans un répertoire particulier ou une arborescence de répertoires, utilisez la fonction inotify.
inotifywait -m .
Encore une fois, l'installation est spécifique à Linux, mais la plupart des autres unices ont un système similaire, par ex. 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; rechercher auditctl
ou lire le auditctl
page de manuel. Il y a quelques exemples sur ce site :suivi des accès aux fichiers, suivi de l'exécution des processus.
La console en attente pour cela est top
, mais il existe des alternatives comme mon htop
préféré qui vous donnent un peu plus de flexibilité d'affichage et vous permettent quelques opérations supplémentaires sur les processus.
Une vue moins interactive qui convient mieux à une utilisation dans les scripts serait le ps
programme et tous ses proches.
Modifier : Sur la base de votre question clarifiée, vous remarquerez peut-être que strace
gère la surveillance des appels système effectué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 sur s sur un processus sélectionné en htop
.
Vous voudrez peut-être jeter un œil à lsof
et strace
. Process Monitor de Sysinternal est en fait Filemon et Regmon combinés avec quelques améliorations supplémentaires. Le top
La commande ressemble plus à Process Explorer.