Handling "System has not been booted with systemd as init system" Error

So you are following some tutorial on the internet and you used systemd command like sudo systemctl start.

To your surprise, the command results in an error like this:

System has not been booted with systemd as init system (PID 1). Can't operate.

Reason: Your Linux system is not using systemd

The reason is that you are trying to use systemd command to manage services on Linux but your system doesn't use systemd and (most likely) using the classic SysV init (sysvinit) system.

But how is that possible? You are using Ubuntu and the tutorial is also for the same version of Ubuntu. How come is it not working for you?

If you are using Ubuntu inside Windows using WSL, you will have SysV instead of systemd and your system will complain when you run the systemctl command (intended for Linux systems with systemd init system).

How to know which init system you are using? You may use this command to know the process name associated with PID 1 (the first process that runs on your system):

ps -p 1 -o comm=

It should show init or sysv (or something like that) in the output. If you see init, your system is not using systemd and you should use the init commands as explained in the next section.

$100 Linode Credit | Linode
Deploy more with Linux virtual machines, global infrastructure, and simple pricing. No surprise bills, no lock-in, and the same price for every data center.

What to do 'System has not been booted with systemd' error?

The simple answer is to not use the systemctl command. Instead, use the equivalent sysvinit command.

It's not too complicated and both commands have somewhat similar syntax.

This table should help you.

Systemd command Sysvinit command
systemctl start service_name service service_name start
systemctl stop service_name service service_name stop
systemctl restart service_name service service_name restart
systemctl status service_name service service_name status
systemctl enable service_name chkconfig service_name on
systemctl disable service_name chkconfig service_name off

Whichever tutorial you are following, try and use the equivalent commands and you won't see the "System has not been booted with systemd as init system (PID 1). Can't operate." error anymore.

Better Uptime - Free Web Monitoring & Status Page
Radically better uptime monitoring platform with phone call alerts, status pages, and incident management built-in. Free plan included!

Do let me know if this helped you in getting rid of this error or not. I'll be happy to help you.