一号线程systemd的详细信息

每一个线程下面的哪些重要的信息 , pi@raspberrypi:~$ ls /proc/1/

attr environ maps pagemap stack autogroup exe mem personality stat auxv fd mountinfo projid_map statm cgroup fdinfo mounts root status clear_refs gid_map mountstats sched syscall cmdline io net schedstat task comm latency ns sessionid timerslack_ns coredump_filter limits oom_adj setgroups uid_map cpuset loginuid oom_score smaps wchan cwd map_files oom_score_adj smaps_rollup, 请你解释每一个目录, 这个线程应该是systemd .

你查看的是 /proc/1/ 目录,它代表 PID 为 1 的进程,通常是系统初始化进程(在树莓派上是 systemd)。这个目录下包含了该进程的所有运行时信息,几乎每一个文件或子目录都对应着某个内核数据结构或状态。

下面我将 逐项解释每一个条目,让你全面了解它们的作用和用途:

🧠 基础信息

项目说明
cmdline启动该进程的命令行参数(以 null 分隔)
comm进程名(通常是可执行文件名)
exe指向进程实际执行的二进制文件的符号链接
cwd当前工作目录(Current Working Directory)
root进程的根目录(可能被 chroot 修改)
environ环境变量(以 null 分隔)
auxvELF 辅助向量(进程启动时传给用户空间的参数)

📊 状态与资源使用

项目说明
stat进程的详细状态信息(如 PID、状态、CPU 时间等)
status可读性更强的状态信息(如 UID、内存、线程数)
statm内存使用情况(总大小、驻留、共享等)
ioI/O 统计(读写字节数、系统调用次数)
limits资源限制(如最大文件数、内存限制)
sched调度器相关信息(如优先级、调度策略)
schedstat调度统计(运行时间、等待时间等)
timerslack_ns定时器精度(纳秒)
latency延迟相关信息(调度延迟、唤醒延迟)

🧩 内存相关

项目说明
maps显示进程的内存映射(地址、权限、文件等)
map_files映射文件的符号链接(与 maps 对应)
mem进程的虚拟内存内容(需要 root 权限读取)
pagemap映射页的物理地址信息
smaps每个映射区域的详细内存使用情况
smaps_rollupsmaps 的汇总版本
clear_refs用于清除内存访问标记(调试用)

🔐 权限与身份

项目说明
uid_map, gid_map用户/组 ID 映射(用于用户命名空间)
loginuid登录用户的 UID(用于审计)
setgroups是否允许设置组 ID
attr安全属性(SELinux、AppArmor)
personality进程的执行环境(影响系统调用行为)

🔄 控制与调度

项目说明
cgroup进程所属的控制组(资源限制)
cpuset所属 CPU 集合(用于 CPU 绑定)
autogroup自动调度组信息
projid_map项目 ID 映射(用于控制组)

🔗 文件与网络

项目说明
fd打开的文件描述符(每个是一个符号链接)
fdinfo每个文件描述符的详细信息(如偏移量)
mounts挂载点信息(与 /etc/mtab 类似)
mountinfo更详细的挂载信息(包括挂载关系)
mountstats文件系统统计信息
net网络相关信息(如 socket、接口)

🧵 线程与子任务

项目说明
task每个线程的子目录(每个线程都有自己的 /proc/<tid>/
wchan当前进程在等待的内核函数(如 do_wait
syscall当前正在执行的系统调用编号及参数

💥 异常与调试

项目说明
oom_scoreOOM 杀手的优先级评分
oom_score_adj调整 OOM 分数的值
oom_adj旧版 OOM 调整接口(已废弃)
coredump_filter控制 core dump 包含哪些内存区域

🧭 总结:最常用的几个文件

文件用途
status查看进程状态、UID、内存等
cmdline查看启动参数
fd/查看打开的文件
maps / smaps查看内存映射和使用
sched / schedstat分析调度行为
task/查看线程列表及其状态

pi@raspberrypi:~$ cat /proc/1/status
Name:   systemd
Umask:  0000
State:  S (sleeping)
Tgid:   1
Ngid:   0
Pid:    1
PPid:   0
TracerPid:      0
Uid:    0       0       0       0
Gid:    0       0       0       0
FDSize: 256
Groups:
NStgid: 1
NSpid:  1
NSpgid: 1
NSsid:  1
VmPeak:    34724 kB
VmSize:    33700 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:      7928 kB
VmRSS:      7928 kB
RssAnon:            1620 kB
RssFile:            6308 kB
RssShmem:              0 kB
VmData:    17896 kB
VmStk:       132 kB
VmExe:      1084 kB
VmLib:     10000 kB
VmPTE:        30 kB
VmSwap:        0 kB
CoreDumping:    0
THP_enabled:    0
Threads:        1
SigQ:   0/6466
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 7be3c0fe28014a03
SigIgn: 0000000000001000
SigCgt: 00000001800004ec
CapInh: 0000000000000000
CapPrm: 0000003fffffffff
CapEff: 0000003fffffffff
CapBnd: 0000003fffffffff
CapAmb: 0000000000000000
NoNewPrivs:     0
Seccomp:        0
Speculation_Store_Bypass:       unknown
Cpus_allowed:   f
Cpus_allowed_list:      0-3
Mems_allowed:   1
Mems_allowed_list:      0
voluntary_ctxt_switches:        1092
nonvoluntary_ctxt_switches:     2326

pi@raspberrypi:~$ cat /proc/1/sched
systemd (1, #threads: 1)
-------------------------------------------------------------------
se.exec_start                                :       6560122.591738
se.vruntime                                  :          1558.212545
se.sum_exec_runtime                          :          5269.869712
se.nr_migrations                             :                   63
nr_switches                                  :                 3419
nr_voluntary_switches                        :                 1093
nr_involuntary_switches                      :                 2326
se.load.weight                               :                 1024
se.runnable_weight                           :                 1024
se.avg.load_sum                              :                  206
se.avg.runnable_load_sum                     :                  206
se.avg.util_sum                              :               210944
se.avg.load_avg                              :                    0
se.avg.runnable_load_avg                     :                    0
se.avg.util_avg                              :                    0
se.avg.last_update_time                      :        6559582636032
se.avg.util_est.ewma                         :                    9
se.avg.util_est.enqueued                     :                    0
policy                                       :                    0
prio                                         :                  120
clock-delta

pi@raspberrypi:~$ cat /proc/1/maps
cat: /proc/1/maps: Permission denied
pi@raspberrypi:~$ sudo cat /proc/1/maps
00470000-0057f000 r-xp 00000000 b3:02 418856     /usr/lib/systemd/systemd
0058e000-005ae000 r--p 0010e000 b3:02 418856     /usr/lib/systemd/systemd
005ae000-005af000 rw-p 0012e000 b3:02 418856     /usr/lib/systemd/systemd
01d27000-01e14000 rw-p 00000000 00:00 0          [heap]
74f00000-74f21000 rw-p 00000000 00:00 0
74f21000-75000000 ---p 00000000 00:00 0
75100000-75121000 rw-p 00000000 00:00 0
75121000-75200000 ---p 00000000 00:00 0
752e1000-752e2000 ---p 00000000 00:00 0
752e2000-75ae2000 rw-p 00000000 00:00 0
75ae2000-75ae3000 ---p 00000000 00:00 0
75ae3000-762e3000 rw-p 00000000 00:00 0
762e3000-76302000 r-xp 00000000 b3:02 269473     /usr/lib/arm-linux-gnueabihf/libudev.so.1.6.13
76302000-76311000 ---p 0001f000 b3:02 269473     /usr/lib/arm-linux-gnueabihf/libudev.so.1.6.13
76311000-76312000 r--p 0001e000 b3:02 269473     /usr/lib/arm-linux-gnueabihf/libudev.so.1.6.13
76312000-76313000 rw-p 0001f000 b3:02 269473     /usr/lib/arm-linux-gnueabihf/libudev.so.1.6.13
76313000-7632c000 r-xp 00000000 b3:02 272365     /usr/lib/arm-linux-gnueabihf/libgpg-error.so.0.26.1
7632c000-7633b000 ---p 00019000 b3:02 272365     /usr/lib/arm-linux-gnueabihf/libgpg-error.so.0.26.1
7633b000-7633c000 r--p 00018000 b3:02 272365     /usr/lib/arm-linux-gnueabihf/libgpg-error.so.0.26.1
7633c000-7633d000 rw-p 00019000 b3:02 272365     /usr/lib/arm-linux-gnueabihf/libgpg-error.so.0.26.1
7633d000-76345000 r-xp 00000000 b3:02 272467     /usr/lib/arm-linux-gnueabihf/libjson-c.so.3.0.1
76345000-76354000 ---p 00008000 b3:02 272467     /usr/lib/arm-linux-gnueabihf/libjson-c.so.3.0.1
76354000-76355000 r--p 00007000 b3:02 272467     /usr/lib/arm-linux-gnueabihf/libjson-c.so.3.0.1
76355000-76356000 rw-p 00008000 b3:02 272467     /usr/lib/arm-linux-gnueabihf/libjson-c.so.3.0.1
76356000-7635d000 r-xp 00000000 b3:02 272126     /usr/lib/arm-linux-gnueabihf/libargon2.so.1
7635d000-7636c000 ---p 00007000 b3:02 272126     /usr/lib/arm-linux-gnueabihf/libargon2.so.1
7636c000-7636d000 r--p 00006000 b3:02 272126     /usr/lib/arm-linux-gnueabihf/libargon2.so.1
7636d000-7636e000 rw-p 00007000 b3:02 272126     /usr/lib/arm-linux-gnueabihf/libargon2.so.1
7636e000-763d8000 r-xp 00000000 b3:02 272247     /usr/lib/arm-linux-gnueabihf/libdevmapper.so.1.02.1
763d8000-763e7000 ---p 0006a000 b3:02 272247     /usr/lib/arm-linux-gnueabihf/libdevmapper.so.1.02.1
763e7000-763e8000 r--p 00069000 b3:02 272247     /usr/lib/arm-linux-gnueabihf/libdevmapper.so.1.02.1
763e8000-763eb000 rw-p 0006a000 b3:02 272247     /usr/lib/arm-linux-gnueabihf/libdevmapper.so.1.02.1
763eb000-763ec000 rw-p 00000000 00:00 0
763ec000-763f2000 r-xp 00000000 b3:02 288486     /usr/lib/arm-linux-gnueabihf/libuuid.so.1.3.0
763f2000-76401000 ---p 00006000 b3:02 288486     /usr/lib/arm-linux-gnueabihf/libuuid.so.1.3.0
76401000-76402000 r--p 00005000 b3:02 288486     /usr/lib/arm-linux-gnueabihf/libuuid.so.1.3.0
76402000-76403000 rw-p 00006000 b3:02 288486     /usr/lib/arm-linux-gnueabihf/libuuid.so.1.3.0
76403000-76407000 r-xp 00000000 b3:02 272141     /usr/lib/arm-linux-gnueabihf/libattr.so.1.1.2448
76407000-76416000 ---p 00004000 b3:02 272141     /usr/lib/arm-linux-gnueabihf/libattr.so.1.1.2448
76416000-76417000 r--p 00003000 b3:02 272141     /usr/lib/arm-linux-gnueabihf/libattr.so.1.1.2448
76417000-76418000 rw-p 00004000 b3:02 272141     /usr/lib/arm-linux-gnueabihf/libattr.so.1.1.2448
76418000-765fe000 r-xp 00000000 b3:02 271417     /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.1
765fe000-7660d000 ---p 001e6000 b3:02 271417     /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.1
7660d000-76626000 r--p 001e5000 b3:02 271417     /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.1
76626000-76627000 rw-p 001fe000 b3:02 271417     /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.1
76627000-7662b000 rw-p 00000000 00:00 0
7662b000-76692000 r-xp 00000000 b3:02 271419     /usr/lib/arm-linux-gnueabihf/libssl.so.1.1
76692000-766a1000 ---p 00067000 b3:02 271419     /usr/lib/arm-linux-gnueabihf/libssl.so.1.1
766a1000-766a7000 r--p 00066000 b3:02 271419     /usr/lib/arm-linux-gnueabihf/libssl.so.1.1
766a7000-766aa000 rw-p 0006c000 b3:02 271419     /usr/lib/arm-linux-gnueabihf/libssl.so.1.1
766aa000-766ae000 r-xp 00000000 b3:02 272198     /usr/lib/arm-linux-gnueabihf/libcap-ng.so.0.0.0
766ae000-766bd000 ---p 00004000 b3:02 272198     /usr/lib/arm-linux-gnueabihf/libcap-ng.so.0.0.0
766bd000-766be000 r--p 00003000 b3:02 272198     /usr/lib/arm-linux-gnueabihf/libcap-ng.so.0.0.0
766be000-766bf000 rw-p 00004000 b3:02 272198     /usr/lib/arm-linux-gnueabihf/libcap-ng.so.0.0.0
766bf000-766c1000 r-xp 00000000 b3:02 269705     /usr/lib/arm-linux-gnueabihf/libdl-2.28.so
766c1000-766d0000 ---p 00002000 b3:02 269705     /usr/lib/arm-linux-gnueabihf/libdl-2.28.so
766d0000-766d1000 r--p 00001000 b3:02 269705     /usr/lib/arm-linux-gnueabihf/libdl-2.28.so
766d1000-766d2000 rw-p 00002000 b3:02 269705     /usr/lib/arm-linux-gnueabihf/libdl-2.28.so
766d2000-76738000 r-xp 00000000 b3:02 272624     /usr/lib/arm-linux-gnueabihf/libpcre.so.3.13.3
76738000-76747000 ---p 00066000 b3:02 272624     /usr/lib/arm-linux-gnueabihf/libpcre.so.3.13.3
76747000-76748000 r--p 00065000 b3:02 272624     /usr/lib/arm-linux-gnueabihf/libpcre.so.3.13.3
76748000-76749000 rw-p 00066000 b3:02 272624     /usr/lib/arm-linux-gnueabihf/libpcre.so.3.13.3
76749000-76760000 r-xp 00000000 b3:02 269718     /usr/lib/arm-linux-gnueabihf/libpthread-2.28.so
76760000-7676f000 ---p 00017000 b3:02 269718     /usr/lib/arm-linux-gnueabihf/libpthread-2.28.so
7676f000-76770000 r--p 00016000 b3:02 269718     /usr/lib/arm-linux-gnueabihf/libpthread-2.28.so
76770000-76771000 rw-p 00017000 b3:02 269718     /usr/lib/arm-linux-gnueabihf/libpthread-2.28.so
76771000-76773000 rw-p 00000000 00:00 0
76773000-767e4000 r-xp 00000000 b3:02 269706     /usr/lib/arm-linux-gnueabihf/libm-2.28.so
767e4000-767f3000 ---p 00071000 b3:02 269706     /usr/lib/arm-linux-gnueabihf/libm-2.28.so
767f3000-767f4000 r--p 00070000 b3:02 269706     /usr/lib/arm-linux-gnueabihf/libm-2.28.so
767f4000-767f5000 rw-p 00071000 b3:02 269706     /usr/lib/arm-linux-gnueabihf/libm-2.28.so
767f5000-76839000 r-xp 00000000 b3:02 271633     /usr/lib/arm-linux-gnueabihf/libblkid.so.1.1.0
76839000-76849000 ---p 00044000 b3:02 271633     /usr/lib/arm-linux-gnueabihf/libblkid.so.1.1.0
76849000-7684c000 r--p 00044000 b3:02 271633     /usr/lib/arm-linux-gnueabihf/libblkid.so.1.1.0
7684c000-7684d000 rw-p 00047000 b3:02 271633     /usr/lib/arm-linux-gnueabihf/libblkid.so.1.1.0
7684d000-76867000 r-xp 00000000 b3:02 272495     /usr/lib/arm-linux-gnueabihf/liblz4.so.1.8.3
76867000-76877000 ---p 0001a000 b3:02 272495     /usr/lib/arm-linux-gnueabihf/liblz4.so.1.8.3
76877000-76878000 r--p 0001a000 b3:02 272495     /usr/lib/arm-linux-gnueabihf/liblz4.so.1.8.3
76878000-76879000 rw-p 0001b000 b3:02 272495     /usr/lib/arm-linux-gnueabihf/liblz4.so.1.8.3
76879000-76899000 r-xp 00000000 b3:02 324760     /usr/lib/arm-linux-gnueabihf/liblzma.so.5.2.4
76899000-768a8000 ---p 00020000 b3:02 324760     /usr/lib/arm-linux-gnueabihf/liblzma.so.5.2.4
768a8000-768a9000 r--p 0001f000 b3:02 324760     /usr/lib/arm-linux-gnueabihf/liblzma.so.5.2.4
768a9000-768aa000 rw-p 00020000 b3:02 324760     /usr/lib/arm-linux-gnueabihf/liblzma.so.5.2.4
768aa000-768da000 r-xp 00000000 b3:02 272438     /usr/lib/arm-linux-gnueabihf/libidn.so.11.6.16
768da000-768e9000 ---p 00030000 b3:02 272438     /usr/lib/arm-linux-gnueabihf/libidn.so.11.6.16
768e9000-768ea000 r--p 0002f000 b3:02 272438     /usr/lib/arm-linux-gnueabihf/libidn.so.11.6.16
768ea000-768eb000 rw-p 00030000 b3:02 272438     /usr/lib/arm-linux-gnueabihf/libidn.so.11.6.16
768eb000-768f0000 r-xp 00000000 b3:02 272447     /usr/lib/arm-linux-gnueabihf/libip4tc.so.0.1.0
768f0000-768ff000 ---p 00005000 b3:02 272447     /usr/lib/arm-linux-gnueabihf/libip4tc.so.0.1.0
768ff000-76900000 r--p 00004000 b3:02 272447     /usr/lib/arm-linux-gnueabihf/libip4tc.so.0.1.0
76900000-76901000 rw-p 00005000 b3:02 272447     /usr/lib/arm-linux-gnueabihf/libip4tc.so.0.1.0
76901000-769c6000 r-xp 00000000 b3:02 272335     /usr/lib/arm-linux-gnueabihf/libgcrypt.so.20.2.4
769c6000-769d6000 ---p 000c5000 b3:02 272335     /usr/lib/arm-linux-gnueabihf/libgcrypt.so.20.2.4
769d6000-769d7000 r--p 000c5000 b3:02 272335     /usr/lib/arm-linux-gnueabihf/libgcrypt.so.20.2.4
769d7000-769db000 rw-p 000c6000 b3:02 272335     /usr/lib/arm-linux-gnueabihf/libgcrypt.so.20.2.4
769db000-76a26000 r-xp 00000000 b3:02 272226     /usr/lib/arm-linux-gnueabihf/libcryptsetup.so.12.4.0
76a26000-76a35000 ---p 0004b000 b3:02 272226     /usr/lib/arm-linux-gnueabihf/libcryptsetup.so.12.4.0
76a35000-76a36000 r--p 0004a000 b3:02 272226     /usr/lib/arm-linux-gnueabihf/libcryptsetup.so.12.4.0
76a36000-76a37000 rw-p 0004b000 b3:02 272226     /usr/lib/arm-linux-gnueabihf/libcryptsetup.so.12.4.0
76a37000-76a3d000 r-xp 00000000 b3:02 272115     /usr/lib/arm-linux-gnueabihf/libacl.so.1.1.2253
76a3d000-76a4c000 ---p 00006000 b3:02 272115     /usr/lib/arm-linux-gnueabihf/libacl.so.1.1.2253
76a4c000-76a4d000 r--p 00005000 b3:02 272115     /usr/lib/arm-linux-gnueabihf/libacl.so.1.1.2253
76a4d000-76a4e000 rw-p 00006000 b3:02 272115     /usr/lib/arm-linux-gnueabihf/libacl.so.1.1.2253
76a4e000-76a52000 r-xp 00000000 b3:02 272199     /usr/lib/arm-linux-gnueabihf/libcap.so.2.25
76a52000-76a61000 ---p 00004000 b3:02 272199     /usr/lib/arm-linux-gnueabihf/libcap.so.2.25
76a61000-76a62000 r--p 00003000 b3:02 272199     /usr/lib/arm-linux-gnueabihf/libcap.so.2.25
76a62000-76a63000 rw-p 00004000 b3:02 272199     /usr/lib/arm-linux-gnueabihf/libcap.so.2.25
76a63000-76a72000 r-xp 00000000 b3:02 272120     /usr/lib/arm-linux-gnueabihf/libapparmor.so.1.6.0
76a72000-76a81000 ---p 0000f000 b3:02 272120     /usr/lib/arm-linux-gnueabihf/libapparmor.so.1.6.0
76a81000-76a82000 r--p 0000e000 b3:02 272120     /usr/lib/arm-linux-gnueabihf/libapparmor.so.1.6.0
76a82000-76a83000 rw-p 0000f000 b3:02 272120     /usr/lib/arm-linux-gnueabihf/libapparmor.so.1.6.0
76a83000-76a97000 r-xp 00000000 b3:02 272472     /usr/lib/arm-linux-gnueabihf/libkmod.so.2.3.4
76a97000-76aa7000 ---p 00014000 b3:02 272472     /usr/lib/arm-linux-gnueabihf/libkmod.so.2.3.4
76aa7000-76aa8000 r--p 00014000 b3:02 272472     /usr/lib/arm-linux-gnueabihf/libkmod.so.2.3.4
76aa8000-76aa9000 rw-p 00015000 b3:02 272472     /usr/lib/arm-linux-gnueabihf/libkmod.so.2.3.4
76aa9000-76ac4000 r-xp 00000000 b3:02 272143     /usr/lib/arm-linux-gnueabihf/libaudit.so.1.0.0
76ac4000-76ad4000 ---p 0001b000 b3:02 272143     /usr/lib/arm-linux-gnueabihf/libaudit.so.1.0.0
76ad4000-76ad5000 r--p 0001b000 b3:02 272143     /usr/lib/arm-linux-gnueabihf/libaudit.so.1.0.0
76ad5000-76ad6000 rw-p 0001c000 b3:02 272143     /usr/lib/arm-linux-gnueabihf/libaudit.so.1.0.0
76ad6000-76ae0000 rw-p 00000000 00:00 0
76ae0000-76aec000 r-xp 00000000 b3:02 272608     /usr/lib/arm-linux-gnueabihf/libpam.so.0.84.2
76aec000-76afb000 ---p 0000c000 b3:02 272608     /usr/lib/arm-linux-gnueabihf/libpam.so.0.84.2
76afb000-76afc000 r--p 0000b000 b3:02 272608     /usr/lib/arm-linux-gnueabihf/libpam.so.0.84.2
76afc000-76afd000 rw-p 0000c000 b3:02 272608     /usr/lib/arm-linux-gnueabihf/libpam.so.0.84.2
76afd000-76b4b000 r-xp 00000000 b3:02 271045     /usr/lib/arm-linux-gnueabihf/libmount.so.1.1.0
76b4b000-76b5b000 ---p 0004e000 b3:02 271045     /usr/lib/arm-linux-gnueabihf/libmount.so.1.1.0
76b5b000-76b5d000 r--p 0004e000 b3:02 271045     /usr/lib/arm-linux-gnueabihf/libmount.so.1.1.0
76b5d000-76b5e000 rw-p 00050000 b3:02 271045     /usr/lib/arm-linux-gnueabihf/libmount.so.1.1.0
76b5e000-76b7e000 r-xp 00000000 b3:02 272708     /usr/lib/arm-linux-gnueabihf/libselinux.so.1
76b7e000-76b8d000 ---p 00020000 b3:02 272708     /usr/lib/arm-linux-gnueabihf/libselinux.so.1
76b8d000-76b8e000 r--p 0001f000 b3:02 272708     /usr/lib/arm-linux-gnueabihf/libselinux.so.1
76b8e000-76b8f000 rw-p 00020000 b3:02 272708     /usr/lib/arm-linux-gnueabihf/libselinux.so.1
76b8f000-76b90000 rw-p 00000000 00:00 0
76b90000-76ba7000 r-xp 00000000 b3:02 272706     /usr/lib/arm-linux-gnueabihf/libseccomp.so.2.3.3
76ba7000-76bb6000 ---p 00017000 b3:02 272706     /usr/lib/arm-linux-gnueabihf/libseccomp.so.2.3.3
76bb6000-76bc2000 r--p 00016000 b3:02 272706     /usr/lib/arm-linux-gnueabihf/libseccomp.so.2.3.3
76bc2000-76bc3000 rw-p 00022000 b3:02 272706     /usr/lib/arm-linux-gnueabihf/libseccomp.so.2.3.3
76bc3000-76bc9000 r-xp 00000000 b3:02 269720     /usr/lib/arm-linux-gnueabihf/librt-2.28.so
76bc9000-76bd8000 ---p 00006000 b3:02 269720     /usr/lib/arm-linux-gnueabihf/librt-2.28.so
76bd8000-76bd9000 r--p 00005000 b3:02 269720     /usr/lib/arm-linux-gnueabihf/librt-2.28.so
76bd9000-76bda000 rw-p 00006000 b3:02 269720     /usr/lib/arm-linux-gnueabihf/librt-2.28.so
76bda000-76da2000 r-xp 00000000 b3:02 418854     /usr/lib/systemd/libsystemd-shared-241.so
76da2000-76db2000 ---p 001c8000 b3:02 418854     /usr/lib/systemd/libsystemd-shared-241.so
76db2000-76df9000 r--p 001c8000 b3:02 418854     /usr/lib/systemd/libsystemd-shared-241.so
76df9000-76dfa000 rw-p 0020f000 b3:02 418854     /usr/lib/systemd/libsystemd-shared-241.so
76dfa000-76dfb000 rw-p 00000000 00:00 0
76dfb000-76f33000 r-xp 00000000 b3:02 269699     /usr/lib/arm-linux-gnueabihf/libc-2.28.so
76f33000-76f42000 ---p 00138000 b3:02 269699     /usr/lib/arm-linux-gnueabihf/libc-2.28.so
76f42000-76f44000 r--p 00137000 b3:02 269699     /usr/lib/arm-linux-gnueabihf/libc-2.28.so
76f44000-76f45000 rw-p 00139000 b3:02 269699     /usr/lib/arm-linux-gnueabihf/libc-2.28.so
76f45000-76f48000 rw-p 00000000 00:00 0
76f64000-76f68000 r-xp 00000000 b3:02 272129     /usr/lib/arm-linux-gnueabihf/libarmmem-v7l.so
76f68000-76f77000 ---p 00004000 b3:02 272129     /usr/lib/arm-linux-gnueabihf/libarmmem-v7l.so
76f77000-76f78000 r--p 00003000 b3:02 272129     /usr/lib/arm-linux-gnueabihf/libarmmem-v7l.so
76f78000-76f79000 rw-p 00004000 b3:02 272129     /usr/lib/arm-linux-gnueabihf/libarmmem-v7l.so
76f79000-76f99000 r-xp 00000000 b3:02 269425     /usr/lib/arm-linux-gnueabihf/ld-2.28.so
76f9f000-76fa9000 rw-p 00000000 00:00 0
76fa9000-76faa000 r--p 00020000 b3:02 269425     /usr/lib/arm-linux-gnueabihf/ld-2.28.so
76faa000-76fab000 rw-p 00021000 b3:02 269425     /usr/lib/arm-linux-gnueabihf/ld-2.28.so
7ed29000-7ed4a000 rw-p 00000000 00:00 0          [stack]
7efce000-7efcf000 r-xp 00000000 00:00 0          [sigpage]
7efcf000-7efd0000 r--p 00000000 00:00 0          [vvar]
7efd0000-7efd1000 r-xp 00000000 00:00 0          [vdso]
ffff0000-ffff1000 r-xp 00000000 00:00 0          [vectors]
pi@raspberrypi:~$

`systemd` 是 Linux 系统中的一个**初始化系统和服务管理器**,它取代了传统的 `SysVinit` 和 `Upstart`,成为现代 Linux 发行版(如 Ubuntu、Fedora、Debian、Arch Linux 等)的默认初始化系统。它不仅负责系统启动和服务管理,还提供了许多高级功能,如日志管理、设备管理、用户会话管理等。 --- ## **systemd 的主要功能** ### **1. 系统和服务管理** - **启动、停止、重启服务** ```bash systemctl start <service> # 启动服务 systemctl stop <service> # 停止服务 systemctl restart <service> # 重启服务 systemctl reload <service> # 重新加载配置(不重启) systemctl status <service> # 查看服务状态 ``` - **启用/禁用服务开机自启** ```bash systemctl enable <service> # 开机自启 systemctl disable <service> # 禁止开机自启 ``` - **查看所有服务** ```bash systemctl list-units --type=service # 列出所有运行的服务 systemctl list-unit-files # 查看所有已安装的服务 ``` ### **2. 系统启动管理** - **查看启动时间** ```bash systemd-analyze # 显示系统启动时间 systemd-analyze blame # 查看各服务启动耗时 ``` - **进入救援模式/紧急模式** ```bash systemctl rescue # 进入救援模式(有限服务) systemctl emergency # 进入紧急模式(仅基本服务) ``` ### **3. 日志管理(journald)** `systemd` 自带日志系统 `journald`,替代传统的 `syslog`: - **查看日志** ```bash journalctl # 查看所有日志 journalctl -u <service> # 查看某个服务的日志 journalctl -f # 实时跟踪日志 journalctl --since "2024-01-01" --until "2024-01-02" # 按时间筛选 ``` ### **4. 设备管理(udev 集成)** `systemd` 集成了 `udev`,用于动态管理设备: - **查看设备** ```bash udevadm info /dev/sda # 查看设备信息 udevadm monitor # 监控设备插拔事件 ``` ### **5. 定时任务(替代 cron)** `systemd` 提供 `systemd.timer` 替代 `cron`: - **创建定时任务** ```ini # /etc/systemd/system/mytask.timer [Unit] Description=Run my task daily [Timer] OnCalendar=daily Persistent=true [Install] WantedBy=timers.target ``` ```bash systemctl enable --now mytask.timer # 启用定时器 ``` ### **6. 挂载管理(替代 /etc/fstab)** `systemd` 可以管理挂载点: - **自动挂载** ```ini # /etc/systemd/system/mnt-data.mount [Unit] Description=Mount Data Partition [Mount] What=/dev/sdb1 Where=/mnt/data Type=ext4 Options=defaults [Install] WantedBy=multi-user.target ``` ```bash systemctl enable --now mnt-data.mount # 启用自动挂载 ``` ### **7. 用户会话管理** `systemd` 可以管理用户级别的服务(`systemd --user`): - **管理用户服务** ```bash systemctl --user start <service> # 启动用户级服务 ``` ### **8. 网络管理(整合 NetworkManager、systemd-networkd)** `systemd` 提供 `systemd-networkd` 和 `systemd-resolved` 管理网络: - **查看网络状态** ```bash networkctl list # 列出网络接口 ``` --- ## **systemd 的优势** ✅ **并行启动**:比 `SysVinit` 更快,服务可以并行加载。 ✅ **依赖管理**:自动处理服务依赖关系。 ✅ **统一管理**:整合日志、定时任务、挂载点等。 ✅ **动态控制**:支持热插拔设备、按需启动服务。 --- ## **systemd 的争议** ❌ **复杂性高**:相比 `SysVinit`,`systemd` 更庞大,学习曲线陡峭。 ❌ **“不遵循 Unix 哲学”**:批评者认为它试图做太多事情,违背了“一个工具只做一件事”的原则。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值