GNU/Linux >> Linux Esercitazione >  >> Linux

Come tenere traccia dei processi appena creati in Linux?

Se i kprobes sono abilitati nel kernel puoi usare execsnoop da perf-tools:

Nel primo terminale:

% while true; do uptime; sleep 1; done

In un altro terminale:

% 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...

Il modo più semplice è abilitare il controllo delle chiamate di sistema

Vedere il seguente link per i dettagli,

Qualcuno conosce un modo semplice per monitorare lo spawn del processo di root | Errore del server

Se stai monitorando tutti i processi, rimuovi semplicemente -F uid=0 parte

I log vengono scritti in /var/log/audit/audit.log


Alcuni esempi di bpftrace utilizzo per raggiungere l'obiettivo.

  1. Il più semplice è rintracciare tutti i exec chiamate nel sistema:

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

    Ci sono almeno due tracepoint che devi tenere d'occhio sys_enter_execve e enter_execveat . Nell'esempio uso il * simbolo che corrisponda a entrambe le chiamate di sistema (questa sintassi funziona dal 2019) .

  2. Si potrebbe anche voler monitorare tutti i thread creati nel sistema come:

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

    Nessun argomento di processo per te in questo caso, tuttavia potrebbe essere utile.

Per vedere l'elenco di tutti gli eventi disponibili eseguire bpftrace -l .


Linux
  1. Come impostare i limiti sui processi di esecuzione degli utenti in Linux

  2. Linux:come elencare gli spazi dei nomi in Linux?

  3. Linux:come trovare processi utilizzando la porta seriale?

  4. Come eliminare i processi in esecuzione in Linux

  5. Come distinguere tra 2 Micro su Linux

Come monitorare il tuo laptop Linux

Come uccidere i processi Zombie in Linux

Come trovare il PID e il PPID di un processo in Linux

Come inviare processi in background su Linux

Come tracciare e tracciare un processo Linux

Come monitorare l'utilizzo di Internet (caricamento e download) su Linux?