Demonstrations of filelife, the Linux eBPF/bcc version. filelife traces short-lived files: those that have been created and then deleted while tracing. For example: # ./filelife TIME PID COMM AGE(s) FILE 05:57:59 8556 gcc 0.04 ccCB5EDe.s 05:57:59 8560 rm 0.02 .entry_64.o.d 05:57:59 8563 gcc 0.02 cc5UFHXf.s 05:57:59 8567 rm 0.01 .thunk_64.o.d 05:57:59 8578 rm 0.02 .syscall_64.o.d 05:58:00 8589 rm 0.03 .common.o.d 05:58:00 8596 rm 0.01 .8592.tmp 05:58:00 8601 rm 0.01 .8597.tmp 05:58:00 8606 rm 0.01 .8602.tmp 05:58:00 8639 rm 0.02 .vma.o.d 05:58:00 8650 rm 0.02 .vdso32-setup.o.d 05:58:00 8656 rm 0.00 .vdso.lds.d 05:58:00 8659 gcc 0.01 ccveeJAz.s 05:58:00 8663 rm 0.01 .vdso-note.o.d 05:58:00 8674 rm 0.02 .vclock_gettime.o.d 05:58:01 8684 rm 0.01 .vgetcpu.o.d 05:58:01 8690 collect2 0.00 ccvKMxdm.ld This has caught short-lived files that were created during a Linux kernel build. The PID shows the process ID that finally deleted the file, and COMM is its process name. The AGE(s) column shows the age of the file, in seconds, when it was deleted. These are all short-lived, and existed for less than one tenth of a second. Creating, populating, and then deleting files as part of another process can be an inefficient method of inter-process communication. It can cause disk I/O as files are closed and their file descriptors flushed, only later to be deleted. As such, short-lived files can be a target of performance optimizations. USAGE message: # ./filelife -h usage: filelife [-h] [-p PID] Trace stat() syscalls optional arguments: -h, --help show this help message and exit -p PID, --pid PID trace this PID only examples: ./filelife # trace all stat() syscalls ./filelife -p 181 # only trace PID 181