GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara melacak proses yang baru dibuat di Linux?

Jika kprobes diaktifkan di kernel, Anda dapat menggunakan execsnoop dari perf-tools:

Di terminal pertama:

% while true; do uptime; sleep 1; done

Di terminal lain:

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

Cara termudah adalah mengaktifkan audit panggilan sistem

Lihat tautan berikut untuk detailnya,

Adakah yang tahu cara sederhana untuk memantau proses root spawn | Kesalahan Server

Jika Anda memantau semua proses, cukup hapus -F uid=0 bagian

Log ditulis ke /var/log/audit/audit.log


Beberapa contoh bpftrace penggunaan untuk mencapai tujuan.

  1. Yang paling sederhana adalah menelusuri semua exec panggilan dalam sistem:

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

    Setidaknya ada dua tracepoint yang Anda butuhkan untuk menonton sys_enter_execve dan enter_execveat . Pada contoh saya menggunakan * simbol untuk mencocokkan kedua syscalls (sintaks ini berfungsi sejak 2019) .

  2. Seseorang mungkin juga ingin memantau semua utas yang dibuat di sistem sebagai:

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

    Namun, tidak ada argumen proses untuk Anda dalam kasus ini, namun ini mungkin berguna.

Untuk melihat daftar semua event yang tersedia, jalankan bpftrace -l .


Linux
  1. Cara Mengatur Batasan pada Proses yang Berjalan Pengguna di Linux

  2. Linux – Bagaimana Cara Mendaftar Namespace Di Linux?

  3. Cara Membunuh Proses yang Berjalan di Linux

  1. Cara Memeriksa Penggunaan Swap Setiap Proses di Linux

  2. Cara mengatur ID proses di Linux untuk program tertentu

  3. Bagaimana membedakan antara 2 Micros di Linux

  1. Bagaimana Cara Membunuh Proses di Linux? Perintah untuk Mengakhiri

  2. Linux – Bagaimana Menemukan Proses Menggunakan Port Serial?

  3. Bagaimana cara kerja debugger di Linux?