What is Linux init?

Init is traditionally the first process started by the Linux kernel during boot. This process is responsible for then starting and managing all other processes/scripts/services during startup and for the entire time that the system is running. Traditionally the init process on Linux was ‘init.d‘ — a process that went through scripts in the /etc/init.d/ directory, one by one, to start all the services required by the running Linux system.

In recent years this has been replaced with systemd, although some Linux distributions use others:

  • upstart – used for a decade by Ubuntu, although Ubuntu is now also on systemd.
  • openrc – an alternative, minimal init daemon.
  • (there are others)

Container environments (like you might find if you use Docker or LXC) have a different way of managing the process(es) they are running, since there are usually significantly fewer processes to manage.

This is what interviewers usually mean when they ask, “what are some of the Linux init systems you’ve worked with?” during job interviews.