GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie verfolgt man neu erstellte Prozesse in Linux?

Wenn kprobes im Kernel aktiviert sind, können Sie execsnoop verwenden von perf-tools:

Im ersten Terminal:

% while true; do uptime; sleep 1; done

In einem anderen 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...

Am einfachsten ist es, die Überwachung von Systemaufrufen zu aktivieren

Weitere Informationen finden Sie unter folgendem Link,

Kennt jemand eine einfache Möglichkeit, den Root-Prozess spawn | Serverfehler

Wenn Sie alle Prozesse überwachen, entfernen Sie einfach die -F uid=0 Teil

Protokolle werden in /var/log/audit/audit.log geschrieben


Einige Beispiele für bpftrace Verwendung, um das Ziel zu erreichen.

  1. Am einfachsten ist es, alle exec zu verfolgen Anrufe im System:

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

    Es gibt mindestens zwei Ablaufverfolgungspunkte, die Sie überwachen müssen sys_enter_execve und enter_execveat . Im Beispiel verwende ich den * Symbol für beide Systemaufrufe (diese Syntax funktioniert seit 2019) .

  2. Man kann auch alle Threads überwachen, die im System erstellt werden, als:

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

    Keine Prozessargumente für Sie in diesem Fall, dennoch kann es nützlich sein.

Um die Liste aller verfügbaren Ereignisse anzuzeigen, führen Sie bpftrace -l aus .


Linux
  1. So legen Sie Limits für Benutzerprozesse unter Linux fest

  2. Linux – Wie listet man Namespaces in Linux auf?

  3. Linux – So finden Sie Prozesse über die serielle Schnittstelle?

  4. So überprüfen Sie die Swap-Nutzung jedes Prozesses in Linux

  5. So legen Sie die Prozess-ID in Linux für ein bestimmtes Programm fest

So verfolgen Sie Ihren Linux-Laptop

So beenden Sie Zombie-Prozesse in Linux

So finden Sie die PID und PPID eines Prozesses in Linux

So senden Sie Prozesse unter Linux an den Hintergrund

So verfolgen und verfolgen Sie einen Linux-Prozess

Wie kann man die Internetnutzung (Upload &Download) unter Linux verfolgen?