Linux系统启动后的1号进程是init,但是现在init是一个到systemd的符号连接。所以init就是systemd,systemd就是init:$ ls -l /sbin/initlrwxrwxrwx 1 root root 20 8月 26 2025 /sbin/init -> /lib/systemd/systemd$ ls -l /sbin/haltlrwxrwxrwx 1 root root 28 7月 10 2019 /sbin/halt -> /lib/molly-guard/molly-guard$ ls -l /sbin/rebootlrwxrwxrwx 1 root root 28 7月 10 2019 /sbin/reboot -> /lib/molly-guard/molly-guard$ ls -l /sbin/powerofflrwxrwxrwx 1 root root 28 7月 10 2019 /sbin/poweroff -> /lib/molly-guard/molly-guard$ ls -l /sbin/telinitlrwxrwxrwx 1 root root 14 8月 26 2025 /sbin/telinit -> /bin/systemctl$ ls -l /sbin/runlevellrwxrwxrwx 1 root root 14 8月 26 2025 /sbin/runlevel -> /bin/systemctl
这里有个奇怪的问题,Linux启动过程中,内核先完成它的启动过程,然后再轮到用户态部分。内核启动过程中会创建许多的内核线程,凭什么你一个用户态的init占了1号进程的位置?比如下面的ps显示init的pid是1,而随后一系列的[xxxx]内核线程pid都往后排:##ps -axps -ax PID TTY STAT TIME COMMAND 1 ? Ss 3:13 /sbin/init splash 2 ? S 0:01 [kthreadd] 3 ? S 0:00 [pool_workqueue_release] 4 ? I< 0:00 [kworker/R-rcu_g] 5 ? I< 0:00 [kworker/R-rcu_p] 6 ? I< 0:00 [kworker/R-slub_] 7 ? I< 0:00 [kworker/R-netns] 9 ? I< 0:00 [kworker/0:0H-events_highpri] 12 ? I< 0:00 [kworker/R-mm_pe] 13 ? I 0:00 [rcu_tasks_kthread] ......
答案是PID 0是内核本身,最后藏功名于idle进程。它是内核启动时自然存在的第一个上下文。它不通过 fork 产生,而是内核自身的执行流。当内核完成硬件初始化后,它会调用 kernel_thread() 创建两个关键的逻辑分支:一个分支演变为 PID 1(最终执行用户态的 init),另一个分支演变为 PID 2(kthreadd,负责管理所有其他的内核线程)。当作为系统实例运行时,systemd 会解析配置文件 system.conf 以及 system.conf.d 目录下的文件。
二、Systemd的Unit
Systemd 将系统管理的各种对象抽象为 Unit(单元)。目前 systemd 共有 11 种 不同的 Unit 类型,涵盖了从进程控制到挂载管理的方方面面:
11 种 Unit 类型概览:
Service: 最常用,用于管理后台守护进程。
Socket: 封装 IPC 或网络套接字,支持“按需启动”(Socket Activation)。
Target: 逻辑组,用于同步启动点(如 multi-user.target)。
Device: 将内核设备暴露在 systemd 中,实现基于设备的启动。
Mount / Automount: 控制文件系统挂载及自动挂载。
Timer: 替代传统的 cron,基于时间触发任务。
Swap: 管理交换分区或文件。
Path: 监控文件路径变化并触发服务。
Slice / Scope: 资源管理利器,利用 cgroups 限制进程的资源占用。
每一个 Unit 都有其生命周期状态:
三、Unit文件结构
在 systemd 中,Unit通过Unit files进行定义。
单元文件采用简单的声明式语法,通常包含多个“小节”(Section),每个小节内包含若干“指令”(Directive):
[Unit]Description=usbguard # 1. 简要描述服务用途[Service]ExecStart=/usr/sbin/usb-daemon # 2. 启动服务时执行的程序路径[Install]WantedBy=multi-user.target # 3. 定义依赖关系(此处指在多用户模式下启动)
Systemd 将“依赖关系”与“启动顺序”拆分为两个独立的概念。
依赖关系 (Dependencies): 决定了单元之间的存亡关系:
启动顺序 (Order): 决定了单元启动的先后顺序。如果没有设置顺序,systemd 会并发启动所有单元:
Systemd使用Unit和Target协同工作。Systemd Unit定义系统上的服务或操作,包含名称、类型和配置文件;Systemd Target则组合多个单元,定义达到该Target所需启动的服务。例如,在服务器上,Target状态可能是「网络已运行且多用户可登录」。这些Target文件以.target为后缀。
与Unit配置文件类似,不同Target可以通过依赖关系嵌套。例如,multi-user.target依赖(包括)那些用于设置登录和用户会话服务的目标。
常见的Systemd目标
default.target:默认启动目标,是一个符号链接,指向实际的目标文件(如桌面工作站指向graphical.target,服务器通常也指向graphical.target)。
poweroff.target:关闭并切断系统电源。
rescue.target:启动基础系统并开启救援shell会话的目标单元。
multi-user.target:设置非图形化(控制台)多用户系统。
graphical.target:使用带有网络服务的图形化多用户系统。
reboot.target:关闭并重启系统。
runlevel0.target-runlevel6.target:alias到其它target,比如runlevel1.target到rescue.target
ls -l /lib/systemd/system/runlevel0.target/lib/systemd/system/runlevel0.target -> poweroff.target
四、systemctl命令概述
Systemctl命令用于检查和控制systemd及服务管理器的状态,以下是常用命令(更详细信息可参考man systemctl手册)。
查看systemd信息: 要查看systemd组件的相关信息,可使用以下命令:
systemctl list-units:列出systemd单元。可使用可选参数:--state=running(显示活跃单元)、--type=service(显示已退出和活跃的服务单元)。
systemctl list-unit-files:列出systemd单元及其状态(如static、generated、disabled、alias、masked、enabled)。
systemctl list-dependencies:列出依赖树。
systemctl list-dependencies UNIT_FILE:列出指定单元配置文件的依赖项(UNIT_FILE替换为实际单元文件名)。
管理systemd服务:systemctl命令可用于执行以下服务管理操作:
systemctl status SERVICE:检查指定服务的状态(SERVICE替换为实际服务名)。
systemctl show SERVICE:显示指定服务的详细信息。
systemctl start SERVICE:启动指定服务(无需手动启动)。当修改服务配置文件后,需重新启动该服务。
systemctl stop SERVICE:停止指定的运行中服务。
systemctl restart SERVICE:重启指定服务(无需手动重启)。当修改服务配置文件后,需重启该服务。
systemctl enable SERVICE:设置服务开机自启。
systemctl disable SERVICE:取消服务开机自启。
systemctl reload-or-restart SERVICE:若服务支持重新加载配置,则重新加载;否则重启服务。若服务未运行,则直接启动。
systemctl mask SERVICE:屏蔽服务。屏蔽后,单元配置文件会被符号链接到/dev/null(链接路径为/etc/systemd/system/服务名.service → /dev/null),即使其他已启用的服务依赖该服务,也无法加载它。被屏蔽的服务需手动停止,否则会在后台继续运行。可使用--runtime选项,仅临时屏蔽至下次系统重启。示例输出:Created symlink /etc/systemd/system/FOSSLinux.service → /dev/null.
systemctl unmask SERVICE:取消屏蔽服务,在系统启动或手动重启服务时生效。
管理系统状态:systemctl命令可用于执行系统电源管理操作,如下所示:
systemctl reboot:重启系统(对应reboot.target)。
systemctl poweroff:关闭系统电源(对应poweroff.target)。
systemctl emergency:进入紧急模式(对应emergency.target)。
systemctl default:返回默认目标(对应multi-user.target)。
五、Systemd故障排查
以下故障排查技巧可帮助识别和解决systemd服务相关问题,确保系统平稳运行。
1. 检查单元配置文件语法
启动或启用systemd服务前,使用systemd-analyze verify SERVICE命令检查单元配置文件的语法,确保无错误。示例:
sudo systemd-analyze verify /etc/systemd/system/my-custom-service.service
该命令会分析单元配置文件,报告语法错误、缺失文件或其他问题。启用和启动服务前,必须修复所有报告的问题。
2. 查看服务日志
若systemd服务出现问题,使用journalctl -u SERVICE命令查看服务日志。示例:
sudo journalctl -u my-custom-service.service
该命令会显示指定服务的日志,包括错误信息、警告或其他相关内容,可通过这些日志识别并修复服务问题。
3. 可视化启动过程
若服务在启动过程中出现问题,使用systemd-analyze plot命令可视化启动过程,识别问题所在。示例:
sudo systemd-analyze plot > boot-plot.svg
该命令会生成一个名为boot-plot.svg的SVG文件,包含启动过程的图形化表示和潜在问题(包括每个服务的启动和停止时间)。可使用支持SVG格式的图片查看器或浏览器打开该文件,分析启动过程中出现问题的服务。
4. 排查失败的服务
查看已失败的服务并检查日志输出:
sudo systemctl --state=failed
5. 检查服务运行时状态
查看指定服务的当前运行时状态:
sudo systemctl status SERVICE
6. 解决关机/重启缓慢问题
若关机或重启过程缓慢,可能是某个服务无法正常退出——systemd会等待一段时间让每个服务退出,再尝试强制终止。常见问题包括服务挂起或关机停滞。可通过以下命令排查:
sudo systemctl poweroff# 可能出现的错误提示:Failed to power off system via logind: There's already a shutdown or sleep operation in progress
查看当前排队的作业:
可取消运行中和等待中的作业,再执行关机或重启:
sudo systemctl cancelsudo systemctl stop systemd-suspend.service
六、其他核心特性
1. 控制组(cgroups)集成
systemd启动的进程会被放入以单元名称命名的Linux控制组(cgroups)中,位于systemd私有层级。这使得systemd能有效跟踪和管理进程,控制组信息可通过以下方式查看:
文件系统:/sys/fs/cgroup/systemd/;
工具:systemd-cgls(1)、ps(1)(推荐命令:ps xawf -eo pid,user,cgroup,args,可查看所有进程及其所属的systemd单元)。
2. 与SysV init兼容
Systemd在很大程度上兼容传统的SysV init系统,支持:
3. 原生启动任务
Systemd内置了多种启动过程中必需的任务实现,无需依赖外部工具,例如:
4. 动态单元生成
单元可在系统启动或systemd管理器重载时,根据其他配置文件或内核命令行参数动态生成,详细可参考systemd.generator(7) 手册。
5. D-Bus API与接口规范
systemd的D-Bus API文档:org.freedesktop.systemd1(5)、org.freedesktop.LogControl1(5);
容器环境中运行systemd:需实现Container Interface规范;
initrd环境中运行systemd:需实现initrd Interface规范。
附录:
Ubuntu中,init这个符号链接在systemd-sysv的package中:
dpkg -L systemd-sysv | grep /sbin//sbin/halt/sbin/init/sbin/poweroff/sbin/reboot/sbin/runlevel/sbin/shutdown/sbin/telinit
/./bin/bin/journalctl/bin/loginctl/bin/networkctl/bin/systemctl/bin/systemd-ask-password/bin/systemd-escape/bin/systemd-inhibit/bin/systemd-machine-id-setup/bin/systemd-notify/bin/systemd-sysext/bin/systemd-sysusers/bin/systemd-tmpfiles/bin/systemd-tty-ask-password-agent/etc/etc/binfmt.d/etc/init.d/etc/kernel/etc/kernel/install.d/etc/modules-load.d/etc/sysctl.d/etc/systemd/etc/systemd/journald.conf/etc/systemd/logind.conf/etc/systemd/network/etc/systemd/networkd.conf/etc/systemd/pstore.conf/etc/systemd/resolved.conf/etc/systemd/sleep.conf/etc/systemd/system/etc/systemd/system.conf/etc/systemd/user/etc/systemd/user.conf/etc/tmpfiles.d/etc/xdg/etc/xdg/systemd/lib/lib/lsb/lib/lsb/init-functions.d/lib/lsb/init-functions.d/40-systemd/lib/modprobe.d/lib/modprobe.d/systemd.conf/lib/systemd/lib/systemd/network/lib/systemd/network/80-container-host0.network/lib/systemd/network/80-container-ve.network/lib/systemd/network/80-container-vz.network/lib/systemd/network/80-vm-vt.network/lib/systemd/network/80-wifi-adhoc.network/lib/systemd/network/80-wifi-ap.network.example/lib/systemd/network/80-wifi-station.network.example/lib/systemd/resolv.conf/lib/systemd/system/lib/systemd/system/basic.target/lib/systemd/system/blockdev@.target/lib/systemd/system/bluetooth.target/lib/systemd/system/boot-complete.target/lib/systemd/system/console-getty.service/lib/systemd/system/container-getty@.service/lib/systemd/system/cryptsetup-pre.target/lib/systemd/system/cryptsetup.target/lib/systemd/system/debug-shell.service/lib/systemd/system/dev-hugepages.mount/lib/systemd/system/dev-mqueue.mount/lib/systemd/system/emergency.service/lib/systemd/system/emergency.target/lib/systemd/system/exit.target/lib/systemd/system/final.target/lib/systemd/system/first-boot-complete.target/lib/systemd/system/getty-pre.target/lib/systemd/system/getty-static.service/lib/systemd/system/getty.target/lib/systemd/system/getty.target.wants/lib/systemd/system/getty@.service/lib/systemd/system/graphical.target/lib/systemd/system/graphical.target.wants/lib/systemd/system/halt.target/lib/systemd/system/hibernate.target/lib/systemd/system/hybrid-sleep.target/lib/systemd/system/initrd-cleanup.service/lib/systemd/system/initrd-fs.target/lib/systemd/system/initrd-parse-etc.service/lib/systemd/system/initrd-root-device.target/lib/systemd/system/initrd-root-device.target.wants/lib/systemd/system/initrd-root-fs.target/lib/systemd/system/initrd-switch-root.service/lib/systemd/system/initrd-switch-root.target/lib/systemd/system/initrd-udevadm-cleanup-db.service/lib/systemd/system/initrd-usr-fs.target/lib/systemd/system/initrd.target/lib/systemd/system/kexec.target/lib/systemd/system/kmod-static-nodes.service/lib/systemd/system/local-fs-pre.target/lib/systemd/system/local-fs.target/lib/systemd/system/local-fs.target.wants/lib/systemd/system/machine.slice/lib/systemd/system/modprobe@.service/lib/systemd/system/multi-user.target/lib/systemd/system/multi-user.target.wants/lib/systemd/system/network-online.target/lib/systemd/system/network-pre.target/lib/systemd/system/network.target/lib/systemd/system/nss-lookup.target/lib/systemd/system/nss-user-lookup.target/lib/systemd/system/paths.target/lib/systemd/system/poweroff.target/lib/systemd/system/printer.target/lib/systemd/system/proc-sys-fs-binfmt_misc.automount/lib/systemd/system/proc-sys-fs-binfmt_misc.mount/lib/systemd/system/quotaon.service/lib/systemd/system/rc-local.service/lib/systemd/system/rc-local.service.d/lib/systemd/system/rc-local.service.d/debian.conf/lib/systemd/system/reboot.target/lib/systemd/system/remote-cryptsetup.target/lib/systemd/system/remote-fs-pre.target/lib/systemd/system/remote-fs.target/lib/systemd/system/remote-veritysetup.target/lib/systemd/system/rescue.service/lib/systemd/system/rescue.target/lib/systemd/system/rescue.target.wants/lib/systemd/system/rpcbind.target/lib/systemd/system/runlevel1.target.wants/lib/systemd/system/runlevel2.target.wants/lib/systemd/system/runlevel3.target.wants/lib/systemd/system/runlevel4.target.wants/lib/systemd/system/runlevel5.target.wants/lib/systemd/system/serial-getty@.service/lib/systemd/system/shutdown.target/lib/systemd/system/sigpwr.target/lib/systemd/system/sleep.target/lib/systemd/system/slices.target/lib/systemd/system/smartcard.target/lib/systemd/system/sockets.target/lib/systemd/system/sockets.target.wants/lib/systemd/system/sound.target/lib/systemd/system/suspend-then-hibernate.target/lib/systemd/system/suspend.target/lib/systemd/system/swap.target/lib/systemd/system/sys-fs-fuse-connections.mount/lib/systemd/system/sys-kernel-config.mount/lib/systemd/system/sys-kernel-debug.mount/lib/systemd/system/sys-kernel-tracing.mount/lib/systemd/system/sysinit.target/lib/systemd/system/sysinit.target.wants/lib/systemd/system/syslog.socket/lib/systemd/system/system-systemd\x2dcryptsetup.slice/lib/systemd/system/system-update-cleanup.service/lib/systemd/system/system-update-pre.target/lib/systemd/system/system-update.target/lib/systemd/system/systemd-ask-password-console.path/lib/systemd/system/systemd-ask-password-console.service/lib/systemd/system/systemd-ask-password-wall.path/lib/systemd/system/systemd-ask-password-wall.service/lib/systemd/system/systemd-backlight@.service/lib/systemd/system/systemd-binfmt.service/lib/systemd/system/systemd-bless-boot.service/lib/systemd/system/systemd-boot-check-no-failures.service/lib/systemd/system/systemd-boot-system-token.service/lib/systemd/system/systemd-exit.service/lib/systemd/system/systemd-fsck-root.service/lib/systemd/system/systemd-fsck@.service/lib/systemd/system/systemd-fsckd.service/lib/systemd/system/systemd-fsckd.socket/lib/systemd/system/systemd-halt.service/lib/systemd/system/systemd-hibernate-resume@.service/lib/systemd/system/systemd-hibernate.service/lib/systemd/system/systemd-hostnamed.service/lib/systemd/system/systemd-hybrid-sleep.service/lib/systemd/system/systemd-initctl.service/lib/systemd/system/systemd-initctl.socket/lib/systemd/system/systemd-journal-flush.service/lib/systemd/system/systemd-journald-audit.socket/lib/systemd/system/systemd-journald-dev-log.socket/lib/systemd/system/systemd-journald-varlink@.socket/lib/systemd/system/systemd-journald.service/lib/systemd/system/systemd-journald.socket/lib/systemd/system/systemd-journald@.service/lib/systemd/system/systemd-journald@.socket/lib/systemd/system/systemd-kexec.service/lib/systemd/system/systemd-localed.service/lib/systemd/system/systemd-localed.service.d/lib/systemd/system/systemd-localed.service.d/locale-gen.conf/lib/systemd/system/systemd-logind.service/lib/systemd/system/systemd-machine-id-commit.service/lib/systemd/system/systemd-modules-load.service/lib/systemd/system/systemd-network-generator.service/lib/systemd/system/systemd-networkd-wait-online.service/lib/systemd/system/systemd-networkd.service/lib/systemd/system/systemd-networkd.socket/lib/systemd/system/systemd-poweroff.service/lib/systemd/system/systemd-pstore.service/lib/systemd/system/systemd-quotacheck.service/lib/systemd/system/systemd-random-seed.service/lib/systemd/system/systemd-reboot.service/lib/systemd/system/systemd-remount-fs.service/lib/systemd/system/systemd-resolved.service/lib/systemd/system/systemd-rfkill.service/lib/systemd/system/systemd-rfkill.socket/lib/systemd/system/systemd-suspend-then-hibernate.service/lib/systemd/system/systemd-suspend.service/lib/systemd/system/systemd-sysctl.service/lib/systemd/system/systemd-sysext.service/lib/systemd/system/systemd-sysusers.service/lib/systemd/system/systemd-time-wait-sync.service/lib/systemd/system/systemd-timedated.service/lib/systemd/system/systemd-tmpfiles-clean.service/lib/systemd/system/systemd-tmpfiles-clean.timer/lib/systemd/system/systemd-tmpfiles-setup-dev.service/lib/systemd/system/systemd-tmpfiles-setup.service/lib/systemd/system/systemd-update-utmp-runlevel.service/lib/systemd/system/systemd-update-utmp.service/lib/systemd/system/systemd-user-sessions.service/lib/systemd/system/systemd-volatile-root.service/lib/systemd/system/time-set.target/lib/systemd/system/time-sync.target/lib/systemd/system/timers.target/lib/systemd/system/timers.target.wants/lib/systemd/system/umount.target/lib/systemd/system/usb-gadget.target/lib/systemd/system/user-.slice.d/lib/systemd/system/user-.slice.d/10-defaults.conf/lib/systemd/system/user-runtime-dir@.service/lib/systemd/system/user.slice/lib/systemd/system/user@.service/lib/systemd/system/user@.service.d/lib/systemd/system/user@.service.d/timeout.conf/lib/systemd/system/veritysetup-pre.target/lib/systemd/system/veritysetup.target/lib/systemd/system-generators/lib/systemd/system-generators/systemd-bless-boot-generator/lib/systemd/system-generators/systemd-cryptsetup-generator/lib/systemd/system-generators/systemd-debug-generator/lib/systemd/system-generators/systemd-fstab-generator/lib/systemd/system-generators/systemd-getty-generator/lib/systemd/system-generators/systemd-gpt-auto-generator/lib/systemd/system-generators/systemd-hibernate-resume-generator/lib/systemd/system-generators/systemd-rc-local-generator/lib/systemd/system-generators/systemd-run-generator/lib/systemd/system-generators/systemd-system-update-generator/lib/systemd/system-generators/systemd-sysv-generator/lib/systemd/system-generators/systemd-veritysetup-generator/lib/systemd/system-preset/lib/systemd/system-preset/90-systemd.preset/lib/systemd/system-shutdown/lib/systemd/system-sleep/lib/systemd/systemd/lib/systemd/systemd-ac-power/lib/systemd/systemd-backlight/lib/systemd/systemd-binfmt/lib/systemd/systemd-bless-boot/lib/systemd/systemd-boot-check-no-failures/lib/systemd/systemd-cgroups-agent/lib/systemd/systemd-cryptsetup/lib/systemd/systemd-fsck/lib/systemd/systemd-fsckd/lib/systemd/systemd-growfs/lib/systemd/systemd-hibernate-resume/lib/systemd/systemd-hostnamed/lib/systemd/systemd-initctl/lib/systemd/systemd-journald/lib/systemd/systemd-localed/lib/systemd/systemd-logind/lib/systemd/systemd-makefs/lib/systemd/systemd-modules-load/lib/systemd/systemd-network-generator/lib/systemd/systemd-networkd/lib/systemd/systemd-networkd-wait-online/lib/systemd/systemd-pstore/lib/systemd/systemd-quotacheck/lib/systemd/systemd-random-seed/lib/systemd/systemd-remount-fs/lib/systemd/systemd-reply-password/lib/systemd/systemd-resolved/lib/systemd/systemd-rfkill/lib/systemd/systemd-shutdown/lib/systemd/systemd-sleep/lib/systemd/systemd-socket-proxyd/lib/systemd/systemd-sulogin-shell/lib/systemd/systemd-sysctl/lib/systemd/systemd-sysv-install/lib/systemd/systemd-time-wait-sync/lib/systemd/systemd-timedated/lib/systemd/systemd-update-utmp/lib/systemd/systemd-user-runtime-dir/lib/systemd/systemd-user-sessions/lib/systemd/systemd-veritysetup/lib/systemd/systemd-volatile-root/lib/systemd/systemd-xdg-autostart-condition/lib/udev/lib/udev/rules.d/lib/udev/rules.d/70-uaccess.rules/lib/udev/rules.d/71-seat.rules/lib/udev/rules.d/73-seat-late.rules/lib/udev/rules.d/99-systemd.rules/usr/usr/bin/usr/bin/bootctl/usr/bin/busctl/usr/bin/hostnamectl/usr/bin/kernel-install/usr/bin/localectl/usr/bin/resolvectl/usr/bin/systemd-analyze/usr/bin/systemd-cat/usr/bin/systemd-cgls/usr/bin/systemd-cgtop/usr/bin/systemd-cryptenroll/usr/bin/systemd-delta/usr/bin/systemd-detect-virt/usr/bin/systemd-id128/usr/bin/systemd-mount/usr/bin/systemd-path/usr/bin/systemd-run/usr/bin/systemd-socket-activate/usr/bin/systemd-stdio-bridge/usr/bin/timedatectl/usr/lib/usr/lib/binfmt.d/usr/lib/environment.d/usr/lib/kernel/usr/lib/kernel/install.d/usr/lib/kernel/install.d/00-entry-directory.install/usr/lib/kernel/install.d/50-depmod.install/usr/lib/kernel/install.d/85-initrd.install/usr/lib/kernel/install.d/90-loaderentry.install/usr/lib/modules-load.d/usr/lib/pam.d/usr/lib/pam.d/systemd-user/usr/lib/sysctl.d/usr/lib/sysctl.d/50-default.conf/usr/lib/sysctl.d/50-pid-max.conf/usr/lib/systemd/usr/lib/systemd/boot/usr/lib/systemd/boot/efi/usr/lib/systemd/boot/efi/linuxx64.efi.stub/usr/lib/systemd/boot/efi/linuxx64.elf.stub/usr/lib/systemd/boot/efi/systemd-bootx64.efi/usr/lib/systemd/catalog/usr/lib/systemd/catalog/systemd.be.catalog/usr/lib/systemd/catalog/systemd.be@latin.catalog/usr/lib/systemd/catalog/systemd.bg.catalog/usr/lib/systemd/catalog/systemd.catalog/usr/lib/systemd/catalog/systemd.de.catalog/usr/lib/systemd/catalog/systemd.fr.catalog/usr/lib/systemd/catalog/systemd.it.catalog/usr/lib/systemd/catalog/systemd.pl.catalog/usr/lib/systemd/catalog/systemd.pt_BR.catalog/usr/lib/systemd/catalog/systemd.ru.catalog/usr/lib/systemd/catalog/systemd.zh_CN.catalog/usr/lib/systemd/catalog/systemd.zh_TW.catalog/usr/lib/systemd/user/usr/lib/systemd/user/app.slice/usr/lib/systemd/user/background.slice/usr/lib/systemd/user/basic.target/usr/lib/systemd/user/bluetooth.target/usr/lib/systemd/user/default.target/usr/lib/systemd/user/exit.target/usr/lib/systemd/user/graphical-session-pre.target/usr/lib/systemd/user/graphical-session.target/usr/lib/systemd/user/paths.target/usr/lib/systemd/user/printer.target/usr/lib/systemd/user/session.slice/usr/lib/systemd/user/shutdown.target/usr/lib/systemd/user/smartcard.target/usr/lib/systemd/user/sockets.target/usr/lib/systemd/user/sound.target/usr/lib/systemd/user/systemd-exit.service/usr/lib/systemd/user/systemd-tmpfiles-clean.service/usr/lib/systemd/user/systemd-tmpfiles-clean.timer/usr/lib/systemd/user/systemd-tmpfiles-setup.service/usr/lib/systemd/user/timers.target/usr/lib/systemd/user/xdg-desktop-autostart.target/usr/lib/systemd/user-environment-generators/usr/lib/systemd/user-environment-generators/30-systemd-environment-d-generator/usr/lib/systemd/user-generators/usr/lib/systemd/user-generators/systemd-xdg-autostart-generator/usr/lib/systemd/user-preset/usr/lib/systemd/user-preset/90-systemd.preset/usr/lib/sysusers.d/usr/lib/sysusers.d/basic.conf/usr/lib/sysusers.d/systemd-journal.conf/usr/lib/sysusers.d/systemd-network.conf/usr/lib/sysusers.d/systemd-resolve.conf/usr/lib/tmpfiles.d/usr/lib/tmpfiles.d/debian.conf/usr/lib/tmpfiles.d/home.conf/usr/lib/tmpfiles.d/journal-nocow.conf/usr/lib/tmpfiles.d/legacy.conf/usr/lib/tmpfiles.d/systemd-nologin.conf/usr/lib/tmpfiles.d/systemd-pstore.conf/usr/lib/tmpfiles.d/systemd-tmp.conf/usr/lib/tmpfiles.d/systemd.conf/usr/lib/tmpfiles.d/tmp.conf/usr/lib/tmpfiles.d/var.conf/usr/lib/tmpfiles.d/x11.conf/var/var/lib/var/lib/polkit-1/var/lib/polkit-1/localauthority/var/lib/polkit-1/localauthority/10-vendor.d/var/lib/polkit-1/localauthority/10-vendor.d/systemd-networkd.pkla/var/lib/systemd/bin/systemd/etc/modules-load.d/modules.conf/etc/sysctl.d/99-sysctl.conf/etc/xdg/systemd/user/lib/systemd/system/autovt@.service/lib/systemd/system/cryptdisks-early.service/lib/systemd/system/cryptdisks.service/lib/systemd/system/ctrl-alt-del.target/lib/systemd/system/dbus-org.freedesktop.hostname1.service/lib/systemd/system/dbus-org.freedesktop.locale1.service/lib/systemd/system/dbus-org.freedesktop.login1.service/lib/systemd/system/dbus-org.freedesktop.timedate1.service/lib/systemd/system/default.target/lib/systemd/system/getty.target.wants/getty-static.service/lib/systemd/system/graphical.target.wants/systemd-update-utmp-runlevel.service/lib/systemd/system/hwclock.service/lib/systemd/system/initrd-root-device.target.wants/remote-cryptsetup.target/lib/systemd/system/initrd-root-device.target.wants/remote-veritysetup.target/lib/systemd/system/kmod.service/lib/systemd/system/multi-user.target.wants/getty.target/lib/systemd/system/multi-user.target.wants/systemd-ask-password-wall.path/lib/systemd/system/multi-user.target.wants/systemd-logind.service/lib/systemd/system/multi-user.target.wants/systemd-update-utmp-runlevel.service/lib/systemd/system/multi-user.target.wants/systemd-user-sessions.service/lib/systemd/system/procps.service/lib/systemd/system/rc.service/lib/systemd/system/rcS.service/lib/systemd/system/rescue.target.wants/systemd-update-utmp-runlevel.service/lib/systemd/system/runlevel0.target/lib/systemd/system/runlevel1.target/lib/systemd/system/runlevel2.target/lib/systemd/system/runlevel3.target/lib/systemd/system/runlevel4.target/lib/systemd/system/runlevel5.target/lib/systemd/system/runlevel6.target/lib/systemd/system/sockets.target.wants/systemd-initctl.socket/lib/systemd/system/sockets.target.wants/systemd-journald-audit.socket/lib/systemd/system/sockets.target.wants/systemd-journald-dev-log.socket/lib/systemd/system/sockets.target.wants/systemd-journald.socket/lib/systemd/system/sysinit.target.wants/cryptsetup.target/lib/systemd/system/sysinit.target.wants/dev-hugepages.mount/lib/systemd/system/sysinit.target.wants/dev-mqueue.mount/lib/systemd/system/sysinit.target.wants/kmod-static-nodes.service/lib/systemd/system/sysinit.target.wants/proc-sys-fs-binfmt_misc.automount/lib/systemd/system/sysinit.target.wants/sys-fs-fuse-connections.mount/lib/systemd/system/sysinit.target.wants/sys-kernel-config.mount/lib/systemd/system/sysinit.target.wants/sys-kernel-debug.mount/lib/systemd/system/sysinit.target.wants/sys-kernel-tracing.mount/lib/systemd/system/sysinit.target.wants/systemd-ask-password-console.path/lib/systemd/system/sysinit.target.wants/systemd-binfmt.service/lib/systemd/system/sysinit.target.wants/systemd-boot-system-token.service/lib/systemd/system/sysinit.target.wants/systemd-journal-flush.service/lib/systemd/system/sysinit.target.wants/systemd-journald.service/lib/systemd/system/sysinit.target.wants/systemd-machine-id-commit.service/lib/systemd/system/sysinit.target.wants/systemd-modules-load.service/lib/systemd/system/sysinit.target.wants/systemd-random-seed.service/lib/systemd/system/sysinit.target.wants/systemd-sysctl.service/lib/systemd/system/sysinit.target.wants/systemd-sysusers.service/lib/systemd/system/sysinit.target.wants/systemd-tmpfiles-setup-dev.service/lib/systemd/system/sysinit.target.wants/systemd-tmpfiles-setup.service/lib/systemd/system/sysinit.target.wants/systemd-update-utmp.service/lib/systemd/system/sysinit.target.wants/veritysetup.target/lib/systemd/system/timers.target.wants/systemd-tmpfiles-clean.timer/lib/systemd/system/x11-common.service/usr/bin/systemd-umount/usr/lib/environment.d/99-environment.conf
Rescue.target的Depedence:
rescue.target○ ├─grub-initrd-fallback.service○ ├─rescue.service○ ├─systemd-update-utmp-runlevel.service● └─sysinit.target● ├─apparmor.service● ├─dev-hugepages.mount● ├─dev-mqueue.mount● ├─keyboard-setup.service● ├─kmod-static-nodes.service● ├─plymouth-read-write.service● ├─plymouth-start.service● ├─proc-sys-fs-binfmt_misc.automount● ├─setvtrgb.service● ├─sys-fs-fuse-connections.mount● ├─sys-kernel-config.mount● ├─sys-kernel-debug.mount● ├─sys-kernel-tracing.mount○ ├─systemd-ask-password-console.path● ├─systemd-binfmt.service○ ├─systemd-boot-system-token.service● ├─systemd-journal-flush.service● ├─systemd-journald.service○ ├─systemd-machine-id-commit.service● ├─systemd-modules-load.service○ ├─systemd-pstore.service● ├─systemd-random-seed.service● ├─systemd-sysctl.service● ├─systemd-sysusers.service● ├─systemd-timesyncd.service● ├─systemd-tmpfiles-setup-dev.service● ├─systemd-tmpfiles-setup.service● ├─systemd-udev-trigger.service● ├─systemd-udevd.service● ├─systemd-update-utmp.service● ├─cryptsetup.target● ├─local-fs.target● │ ├─-.mount● │ ├─boot-efi.mount● │ ├─mnt-sda3.mount● │ ├─mnt-sdb1.mount● │ ├─mnt-sdc1.mount● │ ├─mnt-sdd1.mount● │ ├─mnt-sde1.mount● │ ├─mnt-sdf1.mount○ │ ├─systemd-fsck-root.service● │ └─systemd-remount-fs.service● ├─swap.target● │ └─swapfile.swap● └─veritysetup.target