lsof -p 12345
listera tous les fichiers ouverts par un processus dont le pid est 12345 mais seulement pour un instant particulier.
Comment pouvons-nous surveiller en permanence un processus du début à la fin (jusqu'à la fin du processus) pour répertorier / afficher chaque fichier auquel le processus accède pendant toute sa durée de vie?
Réponses:
Essayez avec
strace -p 12345
; il devrait faire ce que vous essayez de réaliser.La sortie peut être filtrée pour afficher uniquement les fichiers ouverts ( commentaire de Dan D. ):
Remarque: vous pouvez également suivre rapidement les processus en cours d'exécution avec
strace -e open <command>
.la source
strace -p {pid} | grep -i "Open" | tee files_opened.log
. La clé estgrep
, qui vous permet de filtrer la sortie pour l'appel système que vous souhaitez (par exempleopen()
).strace
peut faire mieuxgrep
qu'avec l'-e
option:strace -e open
Le nouvel utilitaire fatrace fera cela: https://launchpad.net/fatrace/
N'utilisez pas l'option -p, cela signifie l'opposé de ce que cela signifie dans lsof ou d'autres utilitaires.
la source
Cela exécutera en boucle la réexécution de votre commande et l'effacement de l'écran à chaque fois:
AVERTISSEMENT: cela manquera les accès rapides aux fichiers et ne convient que pour voir les fichiers de longue date
la source
strace
.lsof