GNU/Linux >> Tutoriels Linux >  >> Linux

Comment suivre le processus enfant à l'aide de strace?

strace -f pour tracer le processus enfant qui est fork() éd.


Il existe un script perl appelé strace-graph . Voici une version de github. Il est fourni avec crosstool-ng versions des compilateurs. Cela fonctionne pour moi même en multiplateforme.

Boîte ARM Linux.

$ ./strace -f -q -s 100 -o app.trc -p 449
$ tftp -pr app.trc 172.0.0.133

Boîte Linux X86_64.

$ ./strace-graph /srv/tftp/app.trc 
 (anon)
  +-- touch /tmp/ppp.sleep
  +-- killall -HUP pppd
  +-- amixer set Speaker 70%
  +-- amixer set Speaker 70%
  +-- amixer set Speaker 70%
  +-- amixer set Speaker 70%
  +-- amixer set Speaker 50%
  +-- amixer set Speaker 70%
  `-- amixer set Speaker 50%

La sortie peut être utilisée pour faciliter la navigation dans le journal de suivi principal.


Je ne vois pas de moyen simple :

Vous pouvez utiliser le -ff option avec -o filename pour produire plusieurs fichiers (un par pid).

ex :

strace -o process_dump -ff ./executable
grep clone process_dump*

cela vous aiderait à voir quel parent a créé quoi. Peut-être que cela vous aiderait - au moins, vous pourriez alors effectuer une recherche en arrière.


Linux
  1. Comment tuer un processus sous Linux en utilisant la commande ?

  2. Comment vérifier si un processus est toujours en cours d'exécution en utilisant Python sous Linux ?

  3. Comment trouver tous les processus enfants ?

  4. Comment obtenir le PID d'un processus enfant forké dans un script shell

  5. Comment puis-je déterminer quel processus en cours d'exécution utilise Java ?

Comment tuer un processus sous Linux

Comment suivre l'exécution d'un programme à l'aide de la commande Linux Strace

Comment afficher les informations de processus à l'aide de Procs sous Linux

Comment traiter des images par lots à l'aide de Converseen dans Ubuntu 20.04

Comment tuer les processus sous Linux en utilisant kill, killall et pkill

Comment suivre et tracer un processus Linux