execsnoop - Man Page

Trace new processes via exec() syscalls. Uses bpftrace/eBPF.

Synopsis

execsnoop.bt

Description

This traces when processes call exec() (execve()). It is handy for identifying new processes created via the usual fork()->exec() sequence. Note that the return value is not currently traced, so the exec() may have failed.

This tool is useful for debugging shell scripts, including application startup. It is also useful for identifying a type of performance issue: a flood of short-lived processes, that end quickly and aren't readily visible in top(1).

Since this uses BPF, only the root user can use this tool.

Requirements

CONFIG_BPF and bpftrace.

Examples

Trace all new processes calling execve():

# execsnoop.bt

Fields

TIME

Time of the exec() call, in milliseconds since program start.

PID

Process ID

ARGS

Process name and arguments (16 word maximum).

Overhead

This traces the execve() tracepoint and prints output for each event. As the rate of this is generally expected to be low (< 100/s), the overhead is also expected to be negligible. If you have an application that is spawning a high rate of new processes for a reason (large build process), this could cause a small amount of overhead: test and understand overhead before use.

Source

This is from bpftrace.

https://github.com/iovisor/bpftrace

Also look in the bpftrace distribution for a companion _examples.txt file containing example usage, output, and commentary for this tool.

This is a bpftrace version of the bcc tool of the same name. The bcc tool provides more fields and options to customize the output.

https://github.com/iovisor/bcc

OS

Linux

Stability

Unstable - in development.

Author

Brendan Gregg

See Also

opensnoop(8)

Referenced By

bcc-exitsnoop(8), bcc-opensnoop(8), opensnoop(8), statsnoop(8), threadsnoop(8).

2018-09-11 USER COMMANDS