Table of Contents

Setup

Server Setup

Security

Install and configure packages

System Startup

Debian 11 uses Systemd, not SysV, that's why your commands 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.

  1. Create a rc.local unit file, follow Services - rc.local
  2. Create file rc.local in /etc with the following content:
    vim /etc/rc.local
    #!/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
  3. Add execute permissions and start daemon:
    chmod +x /etc/rc.local
    systemctl daemon-reload
    systemctl start rc-local
    systemctl status rc-local
    
    ● rc-local.service - /etc/rc.local Compatibility
       Loaded: loaded (/lib/systemd/system/rc-local.service; static; vendor preset: 
      Drop-In: /lib/systemd/system/rc-local.service.d
               └─debian.conf
       Active: active (exited) since Sun 2019-05-05 10:55:29 +07; 11min ago
      Process: 1443 ExecStart=/etc/rc.local start (code=exited, status=0/SUCCESS)
        Tasks: 0 (limit: 4915)
       CGroup: /system.slice/rc-local.service

System Shutdown

  1. Put a symbolic link to the script to be run at shutdown into /lib/systemd/system-shutdown