GNU/Linux >> Tutoriels Linux >  >> Linux

Comment suivre les processus nouvellement créés sous Linux ?

Si kprobes sont activés dans le noyau, vous pouvez utiliser execsnoop de perf-tools :

Dans le premier terminal :

% while true; do uptime; sleep 1; done

Dans un autre terminal :

% git clone https://github.com/brendangregg/perf-tools.git
% cd perf-tools
% sudo ./execsnoop
Tracing exec()s. Ctrl-C to end.
Instrumenting sys_execve
   PID   PPID ARGS
 83939  83937 cat -v trace_pipe
 83938  83934 gawk -v o=1 -v opt_name=0 -v name= -v opt_duration=0 [...]
 83940  76640 uptime
 83941  76640 sleep 1
 83942  76640 uptime
 83943  76640 sleep 1
 83944  76640 uptime
 83945  76640 sleep 1
^C
Ending tracing...

Le moyen le plus simple consiste à activer l'audit des appels système

Voir le lien suivant pour plus de détails,

Est-ce que quelqu'un connaît un moyen simple de surveiller l'apparition du processus racine | Erreur de serveur

Si vous surveillez tous les processus, supprimez simplement le -F uid=0 partie

Les journaux sont écrits dans /var/log/audit/audit.log


Quelques exemples de bpftrace utilisation pour atteindre l'objectif.

  1. Le plus simple est de tracer tous les exec appels dans le système :

    sudo bpftrace -e 'tracepoint:syscalls:sys_enter_exec*{ printf("pid: %d, comm: %s, args: ", pid, comm); join(args->argv); }'
    

    Il y a au moins deux points de trace que vous devez surveiller sys_enter_execve et enter_execveat . Dans l'exemple j'utilise le * symbole pour correspondre aux deux appels système (cette syntaxe fonctionne depuis 2019) .

  2. On peut également souhaiter surveiller tous les threads créés dans le système comme :

    sudo bpftrace -e 'kprobe:_do_fork{ printf("pid = %d, comm = %s\n", pid, comm); }'
    

    Aucun argument de processus pour vous dans ce cas, néanmoins, cela peut être utile.

Pour voir la liste de tous les événements disponibles, exécutez bpftrace -l .


Linux
  1. Linux - Comment répertorier les espaces de noms sous Linux ?

  2. Comment tuer les processus en cours d'exécution sous Linux

  3. Comment vérifier l'utilisation du swap de chaque processus sous Linux

  4. Comment définir l'ID de processus sous Linux pour un programme spécifique

  5. Comment faire la différence entre 2 Micros sous Linux

Comment suivre votre ordinateur portable Linux

Comment tuer les processus Zombie sous Linux

Comment trouver le PID et le PPID d'un processus sous Linux

Comment envoyer des processus en arrière-plan sous Linux

Comment suivre et tracer un processus Linux

Comment suivre l'utilisation d'Internet (téléchargement et téléchargement) sous Linux ?