Exploring how processes are created
Before we go into the details of creating processes and daemons, we need a general understanding of processes. The best way to get this understanding is by looking at the processes already running on your system, which is what we are going to do in this recipe.
Every process on the system has started its life by being spawned—forked—from another process. The very first process to be used on Unix and Linux systems has historically been init. The
init process has been replaced in modern Linux distributions with systemd. They both serve the same purpose; to start the rest of the system.
A typical process tree may look like this, where a user has logged on via a terminal (that is, if we skip the complexity of X Window logons):
|- systemd (1) \- login (6384) \- bash (6669) \- more testfile.txt (7184)
The process IDs are the numbers in parenthesis.