From RHEL 7, a new architecture has been introduced in managing the services and that is called as systemd. Controlling the services on how they’re started, stopped etc are now done by systemd.
Although the systemd replaces the init process, it still supports existing init scripts. On demand service start-up and better transactional dependency controls helps systemd reduce start up time.
Also, systemd helps user to prioritize critical services over less important services. Major features of systemd includes:
- Now with systemd, boot messages are never lost. They are stored in /run directory.
- Introducing Dependencies, which can be defined for each service explicitly. This results in faster boot process since many services can start at the same time, once their dependencies are met.
- Services are now identified as Cgroups. All components of a service have a tag, to make sure that all of those components are properly started or stopped.
- systemd enables service activation based on the path, socket, bus, timer or hardware activation. As systemd can set up sockets, if a process handling communications goes way, another process which comes in its place can pick up the same from the socket, thereby not interrupting any service used by client.
- It’s not just services that systemd manages, but unit types too. These unit types include, but not limited to the following:
Paths, Sockets, Services, Slices
- Resource management is now simple with systemd. systemd units are associated with its own cgroup enabling users to restrict service using beyond a precise memory and cpu limit.
- Slices, as the name implies allows user to slice up system resources to many and assign them to users, services, vm’s and other units.Accounting is also done so that you can charge customers based on their resource usage.