For example, the Preload daemon runs on me using init
yes, with the "help" of the /sbin/init program, which, as you can see, in your case belongs to the upstart package.
it also executes commands from the configuration files /etc/init/* . one of them is /etc/init/rc.conf (of course, also from the upstart package), in which the /etc/init.d/rc script is run (from the sysv-rc package, which is built from the same sources as the sysvinit package), which, in turn, executes the necessary files (more precisely, symlink-i) from the corresponding directories in /etc/rc?.d/ , passing with the parameters start or stop .
Also in the output of the initctl list command, the preload daemon is missing
this list is not “demons” listed, but (I quote) “known jobs and instances”. see the description of the list command in man initctl .
With all this, the service preload status says that preload is running
if you look into the /usr/sbin/service file (from the sysvinit-utils package, which is also built from the same sources as sysvinit ), you will see that, if necessary, it is “taken” into that /etc/init.d/ directory /etc/init.d/ , looks for the corresponding file there and launches it with the passed parameter (in this case, status ).
how is that? After all, the initialization process receives PID 1. It seems that it should be only one.
“As it happens,” I hope I explained above.
about the process “number 1”: this is the only process that runs the linux program itself (and if it is abruptly terminated, the linux program “flows” into the kernel panic ). Yes, it is quite logical that this process, when launched, performs the further operations necessary for the operation of the operating system. in particular, it starts all sorts of different "demons". what exactly starts is dependent on the logic of this program and on its current configuration. and this process (at least at the beginning) is “avalanche-like”: this or that running program can generate more heaps of other programs, and so on.
In principle, nothing prevents you, for example, from specifying the linux program with the parameter init=/bin/bash , waiting for the shell prompt, and manually starting everything you need: both the preload program and all other services, and getting almost exactly the result as functioning as if, instead of you, the program /sbin/init (and the programs that were running) did it all.
addition
probably not quite right to call the process number 1 "initialization process". This process is not only involved in initialization, but also takes a direct part in the further operation of the operating system (for example, the same sysv -style transition between runlevels ) and in the completion of its work.