With Debian 11 (Bullseye) there is no default rc.local file anymore. But this doesn't mean it has been completely removed.
The rc-local service is available but it will need a default config file.
Create a file
/etc/rc.local with the following content:
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. exit 0
We now have to make the file executable with the following command:
chmod +x /etc/rc.local
Then we need to reload the systemd manager configuration:
Then we start the rc-local daemon:
systemctl start rc-local
And then we check the status of rc-local to confirm it ran OK:
systemctl status rc-local
You should then get an output like below stating the it is active and exited normal:
● rc-local.service - /etc/rc.local Compatibility Loaded: loaded (/lib/systemd/system/rc-local.service; enabled-runtime; vendor preset: enabled) Drop-In: /usr/lib/systemd/system/rc-local.service.d └─debian.conf Active: active (exited) Docs: man:systemd-rc-local-generator(8) Process: 58756 ExecStart=/etc/rc.local start (code=exited, status=0/SUCCESS)