本文介绍了Debian 10系统中查看开机自启动脚本的详细方法,主要涵盖两种方式:一是通过systemd管理服务,使用systemctl list-unit-files --type=service列出所有开机启动服务,或查看/etc/systemd/system/和/usr/lib/systemd/system/目录下的.service文件;二是针对传统SysVinit脚本,检查/etc/init.d/目录及/etc/rc*.d/链接文件,也可使用chkconfig --list(若安装),可通过systemctl status 服务名查看服务状态,或直接查看脚本内容确认配置。
在Linux系统管理中,开机自启动脚本(或服务)是确保关键服务、工具或自定义程序在系统启动时自动运行的核心机制,Debian 10(Buster)作为广泛使用的服务器和桌面系统,默认采用systemd作为初始化系统(init system),同时保留了对传统init.d脚本和rc.local的支持,本文将详细介绍在Debian 10中查看开机自启动脚本的多种方法,帮助用户快速定位和管理自启动配置。
通过 Systemd 查看系统级自启动服务(推荐方法)
systemd是Debian 10的默认初始化系统,负责管理系统启动、服务运行、资源管理等核心任务,绝大多数系统级自启动服务都以systemd单元(unit)的形式存在,通过systemctl命令可以方便地查看和管理。
列出所有已启用的自启动服务
使用以下命令查看所有在系统启动时自动启用的systemd服务:

systemctl list-unit-files --type=service --state=enabled
输出示例:
UNIT FILE STATE
networkd.service enabled
ssh.service enabled
cron.service enabled
user@1000.service enabled
UNIT FILE:服务单元文件名(通常为<服务名>.service);STATE:enabled表示开机自启动,disabled表示禁用,static表示由其他服务触发启动。
查看具体服务的启动脚本路径
每个systemd服务的配置文件位于/lib/systemd/system/或/etc/systemd/system/目录下(前者为系统默认配置,后者为用户自定义覆盖),查看ssh服务的配置文件:
cat /lib/systemd/system/ssh.service ``` 解析: - `[Unit]`:定义服务的基本信息(如依赖关系、描述); - `[Service]`:定义服务的启动命令、运行用户、工作目录等(如`ExecStart=/usr/sbin/sshd -D`); - `[Install]`:定义服务的安装方式(如`WantedBy=multi-user.target`表示在多用户模式下启动)。 ### 3. 查看服务的启动状态和日志 若需确认服务是否成功启动,可使用以下命令: ```bash systemctl status ssh.service journalctl -u ssh.service -b # 查看本次启动中ssh服务的日志
-b参数表示显示本次启动的日志(--boot可显示所有启动日志)。
查看传统 init.d 脚本(兼容旧版服务)
虽然systemd已成为主流,但Debian 10仍保留了对init.d脚本的支持(位于/etc/init.d/目录),部分老旧服务或自定义脚本可能仍通过init.d管理。
列出所有 init.d 脚本
ls /etc/init.d/
输出示例:
bootmisc.sh cron hostname networking ssh udev ...
查看脚本是否启用(及启动级别)
init.d脚本的启用状态通过update-rc.d管理,可通过以下命令查看脚本的启动链接:
ls /etc/rc*.d/ | grep <脚本名>
查看ssh脚本的启动链接:
ls /etc/rc*.d/ | grep ssh
输出示例:
S02ssh K20ssh
S开头的链接表示“启动”(S后面的数字是启动顺序,越小越先启动);K开头的链接表示“停止”(K后面的数字是停止顺序,越小越先停止)。
若存在S链接,表示该脚本会在对应运行级别下启动(如rc2.d对应多用户无网络模式,rc3.d对应多用户有网络模式)。
查看脚本内容
直接查看/etc/init.d/下的脚本文件:
cat /etc/init.d/ssh
脚本通常包含start、stop、restart等函数,通过service <脚本名> start手动启动时调用。
检查 rc.local 自启动脚本
rc.local是Linux系统中经典的“自定义启动脚本”入口,允许用户在系统启动时执行自定义命令,在Debian 10中,rc.local默认不启用,但可通过简单配置恢复。
检查 rc.local 是否启用
systemctl status rc-local
若输出“Active: inactive (dead)”,表示未启用;若为“Active: active (running)”,则已启用。
启用 rc.local(如未启用)
创建/etc/systemd/system/rc-local.service参考/usr/lib/systemd/system/rc-local.service),并执行:

