在 Debian 11 上设置开机自动执行命令,可以通过多种方式实现,以下是几种常用方法:

方法一:使用 /etc/rc.local 文件

Debian 11 默认没有 /etc/rc.local 文件,可以手动创建并配置为系统服务。

  1. 创建 /etc/rc.local 文件:

    sudo nano /etc/rc.local
  2. 在文件中添加要执行的命令。确保文件开头指定了 shell 并加上 exit 0,例如:

    #!/bin/bash
    echo "Hello, Debian 11!" > /home/your_username/boot_log.txt
    exit 0
  3. 设置执行权限:

    sudo chmod +x /etc/rc.local
  4. 创建并启用服务:

    sudo nano /etc/systemd/system/rc-local.service

    文件内容为:

    [Unit]
    Description=/etc/rc.local Compatibility
    ConditionPathExists=/etc/rc.local
    
    [Service]
    Type=forking
    ExecStart=/etc/rc.local
    TimeoutSec=0
    StandardOutput=tty
    RemainAfterExit=yes
    SysVStartPriority=99
    
    [Install]
    WantedBy=multi-user.target
  5. 启用服务并启动:

    sudo systemctl enable rc-local
    sudo systemctl start rc-local

方法二:使用 crontab

使用 crontab@reboot 选项设置开机运行任务。

  1. 编辑 crontab 文件:

    crontab -e
  2. 添加一行,格式如下:

    @reboot /path/to/your/script.sh
  3. 保存并退出,系统重启时会自动运行脚本。

方法三:使用 systemd 服务

创建一个 systemd 服务文件来自动执行命令。

  1. 创建服务文件:

    sudo nano /etc/systemd/system/my_startup.service
  2. 添加以下内容,修改其中的 ExecStart 为实际命令路径:

    [Unit]
    Description=My Startup Script
    After=network.target
    
    [Service]
    Type=simple
    ExecStart=/path/to/your/command
    
    [Install]
    WantedBy=multi-user.target
  3. 启用并启动服务:

    sudo systemctl enable my_startup.service
    sudo systemctl start my_startup.service

完成以上设置后,命令将在 Debian 11 启动时自动执行。