Information about the current process
In a Unix-like operating system,
/proc is a virtual filesystem that provides a way to access
information about processes and the system itself. The
/proc/self directory is a symbolic link that refers to the
process directory of the current process. Here are some examples of how
/proc/self can be used:
Get the process ID (PID) of the current process:
cat /proc/self/`pidof $$`/status | grep PID PID: 1234
In this example, the
pidof $$ command gets the PID of the current process, and the
reads the status file in the process directory to get information about the process, including the PID.
Read the command line arguments of the current process:
cat /proc/self/cmdline /usr/bin/python3 script.py arg1 arg2
The cmdline file contains the command line arguments passed to the process, separated by null characters.
Get information about the memory usage of the current process:
cat /proc/self/status | grep VmPeak VmPeak: 123456 kB
The status file contains information about the memory usage of the process, including the peak virtual memory usage (VmPeak).
Access file descriptors of the current process:
ls -l /proc/self/fd lr-x------ 1 user user 64 Apr 16 10:00 0 -> /dev/pts/0 lrwx------ 1 user user 64 Apr 16 10:00 1 -> /dev/pts/0 lrwx------ 1 user user 64 Apr 16 10:00 2 -> /dev/pts/0
fd directory contains file descriptors for the current process. In this example, file descriptors
are all linked to the same terminal device
/proc/self provides a way for a process to access information about itself and its environment, which can
be useful for debugging, performance monitoring, and other system-level tasks.