If you are running a Linux distro that uses Systemd, then you may find that your command in /etc/rc.local file would not run at system boot time. This guide explains how to enable /etc/rc.local script to run on system startup.
As root user
- systemctl status rc-local
if it says – Active: inactive (dead)
then you need to enable
- systemctl enable rc-local
if you get – The unit files have no installation config
The unit file have no Install section. As such Systemd can not enable it. First we need to create a file:
- nano /etc/systemd/system/rc-local.service
Add the following
[Unit] Description=/etc/rc.local Compatibility ConditionPathExists=/etc/rc.local [Service] Type=forking ExecStart=/etc/rc.local start TimeoutSec=0 StandardOutput=tty RemainAfterExit=yes SysVStartPriority=99 [Install] WantedBy=multi-user.target
To exit the file, Press Ctrl+X.
- chmod +x /etc/rc.local
Make a rc-local file
- printf ‘%s\n’ ‘#!/bin/bash’ ‘exit 0’ | tee -a /etc/rc.local
add execute permission to /etc/rc.local file.
- chmod +x /etc/rc.local
enable the service on system boot:
- systemctl enable rc-local
Output should be – Created symlink /etc/systemd/system/multi-user.target.wants/rc-local.service -> /etc/systemd/system/rc-local.service.
Start the service and check its status
- systemctl start rc-local.service
- systemctl status rc-local.service
The output should be – Active: active (exited) since Fri 2022-07-15 15:57:31 UTC; 7s ago
Now you can – nano /etc/rc.local – edit as needed