麒麟os中确认开机自启服务的方法有五种:一、用systemctl list-unit-files --type=service查看启用状态;二、用systemctl list-dependencies分析依赖链;三、检查/etc/systemd/system/下wants目录的符号链接;四、用chkconfig --list查sysv服务;五、用journalctl -b 0 | grep "started"查实际启动日志。

如果您在麒麟OS中需要确认系统开机时自动启动的服务或程序,则可能是由于服务未被正确注册为启动项,或当前运行级别未启用对应服务。以下是查看启动项的多种方法:
一、使用 systemctl list-unit-files 查看所有服务的启用状态
systemctl 是麒麟OS(基于 systemd)默认的服务管理工具,list-unit-files 子命令可列出全部单元文件及其开机启用状态,是判断服务是否设为启动项的最直接方式。
1、打开终端,输入以下命令:
systemctl list-unit-files --type=service
2、在输出结果中,关注第三列“STATE”,其值为 enabled 表示该服务已设置为开机启动;disabled 表示未启用;static 表示不可直接启用(通常作为其他服务的依赖存在)。
3、如需仅筛选已启用的服务,追加 grep 过滤:
systemctl list-unit-files --type=service | grep enabled
二、使用 systemctl list-dependencies 查看指定服务的启动依赖链
某些服务虽未被直接启用,但可能作为其他已启用服务的依赖项,在系统启动时被间接拉起。通过依赖关系分析,可识别实际参与启动流程的服务路径。
1、以 sshd 服务为例,执行以下命令:
systemctl list-dependencies --all --type=service sshd.service
2、观察输出中是否包含 multi-user.target 或 graphical.target —— 这两个 target 分别代表多用户命令行模式和图形界面模式的启动目标,若出现在依赖链中,表明该服务将在对应运行级别下随系统启动。
3、如需反向查找哪些服务依赖某基础服务(例如 network.target),可添加 --reverse 参数:
systemctl list-dependencies --reverse --type=service network.target
三、检查 /etc/systemd/system/ 和 /usr/lib/systemd/system/ 下的符号链接
systemd 通过在 /etc/systemd/system/ 目录下创建指向 /usr/lib/systemd/system/ 中原始 service 文件的符号链接来实现启用。因此,直接检查这些链接的存在与否,是验证启动项注册的底层依据。
1、列出所有位于启动目标目录下的 service 链接:
ls -l /etc/systemd/system/multi-user.target.wants/
2、同样检查图形界面目标目录(如已安装桌面环境):
ls -l /etc/systemd/system/graphical.target.wants/
3、若发现某 service 文件(如 nginx.service)在此类 wants 目录中存在软链接,则说明该服务已被明确启用为启动项。
四、使用 chkconfig 兼容命令(适用于兼容 SysV 脚本的遗留服务)
部分老版本服务脚本仍保留 SysV init 风格,存放在 /etc/init.d/ 目录下。麒麟OS 提供 chkconfig 命令作为兼容层,用于查询或管理这些脚本的运行级别启用状态。
1、确认 chkconfig 是否已安装:
which chkconfig
2、若存在,列出所有 SysV 风格服务及其各运行级别状态:
sudo chkconfig --list
3、注意:输出中 run-level 3 和 run-level 5 对应 multi-user.target 和 graphical.target;标记为 on 的即为对应级别下将启动的服务。
五、查看内核启动日志中实际加载的服务记录
dmesg 和 journalctl 可回溯系统启动过程中真实执行的服务初始化过程,适用于验证服务是否真正完成启动(而不仅是配置启用)。
1、过滤出与服务启动相关的核心日志行:
sudo dmesg | grep -i "starting\|started"
2、更精确地检索 systemd 启动阶段服务日志:
sudo journalctl -b 0 | grep "Started.*service"
3、如需查看特定服务(如 cron)的启动时间线:
sudo journalctl -b 0 -u cron.service










