GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo rastrear procesos recién creados en Linux?

Si kprobes están habilitados en el kernel, puede usar execsnoop de perf-herramientas:

En la primera terminal:

% while true; do uptime; sleep 1; done

En otra 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...

La forma más fácil es habilitar la auditoría de llamadas del sistema

Consulte el siguiente enlace para obtener más información,

¿Alguien sabe una forma sencilla de monitorear la generación de procesos raíz? Error del servidor

Si está monitoreando todos los procesos, simplemente elimine el -F uid=0 parte

Los registros se escriben en /var/log/audit/audit.log


Algunos ejemplos de bpftrace uso para lograr el objetivo.

  1. El más simple es rastrear todos los exec llamadas en el sistema:

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

    Hay al menos dos puntos de seguimiento que debe vigilar sys_enter_execve y enter_execveat . En el ejemplo uso el * símbolo para que coincida con ambas llamadas al sistema (esta sintaxis funciona desde 2019) .

  2. También es posible que desee monitorear todos los subprocesos que se crean en el sistema como:

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

    Sin embargo, no hay argumentos de proceso para usted en este caso, sin embargo, puede ser útil.

Para ver la lista de todos los eventos disponibles, ejecute bpftrace -l .


Linux
  1. Linux:¿cómo enumerar los espacios de nombres en Linux?

  2. Cómo matar procesos en ejecución en Linux

  3. Cómo verificar el uso de intercambio de cada proceso en Linux

  4. Cómo configurar la ID del proceso en Linux para un programa específico

  5. ¿Cómo funciona un depurador en Linux?

Cómo rastrear su computadora portátil Linux

Cómo matar procesos Zombie en Linux

Cómo encontrar el PID y PPID de un proceso en Linux

Cómo enviar procesos a segundo plano en Linux

Cómo rastrear y rastrear un proceso de Linux

¿Cómo rastrear el uso de Internet (carga y descarga) en Linux?