在现代Linux系统中,systemd是一种最常用的系统与服务管理器。
systemd的主要作用是在系统启动时初始化并管理系统进程、服务、硬件、网络等系统资源,并提供服务依赖管理、日志管理等功能。
同时,systemd还提供了一些工具,帮助用户更方便地管理系统服务和其他系统资源。
在Linux系统中,systemd 的存在可以通过检查1号进程来确认:
首先检查系统中的1号进程,会发现它是系统的init进程,它负责初始化系统并启动其他进程。
g@GitExp:~$ ps aux | grep init
root 1 0.0 0.1 225472 9344 ? Ss 12月23 0:07 /sbin/init splash
在Linux发展历程中,不同的Linux发行版本使用的初始化系统有差别,但是这些初始化程序都是作为1号进程来运行,因此我们可以详细检查我们的1号进程是否由systemd提供。
检查init的连接:
g@GitExp:~$ ll /sbin/init
lrwxrwxrwx 1 root root 20 3月 2 2023 /sbin/init -> /lib/systemd/systemd*
在现代Linux 系统中,systemd 作为系统的初始化系统,通常会取代传统的 init。但是,系统的 init 进程有时仍然会以 /sbin/init 作为启动的命令出现,并软连接指向实际地址。
也可以直接检查:
g@GitExp:~$ ps -p 1
PID TTY TIME CMD
1 ? 00:00:07 systemd
systemd具有许多现代化的特点和优势,使其成为目前大多数Linux系统中首选的管理器。
(1)Unit 机制:systemd使用unit配置文件来管理服务、挂载点、设备等系统资源,它是systemd其他功能的基础机制。
(2)服务依赖管理:在unit机制下,通过服务依赖,可以精确控制服务的启动顺序。
(3)并行启动服务:systemd支持并行启动多个服务,而不是像传统init系统那样逐个依次启动,能够显著减少系统启动的时间。
(4)进程监控与自动重启:systemd支持监控进程的运行状态,并能够在服务崩溃时自动重启服务。这为系统提供了更高的稳定性。
(5)资源控制:systemd可以利用 Linux 内核的cgroups功能,控制系统资源的使用,如 CPU、内存、磁盘 I/O 等。可以更好地分配系统资源,避免某个进程占用过多资源导致系统不稳定。
(6)日志管理:systemd包含了一个内置的日志系统journald,用于收集系统和服务的日志。通过journalctl命令可以方便地查看和管理日志信息,并且支持日志过滤和搜索。
(7)统一管理接口:systemd提供了一个统一的命令行工具systemctl,用于管理系统服务、启动、停止、重启等操作。
(8)目标机制:systemd使用目标(target)来管理系统状态。例如,multi-user.target 表示多用户模式,相当于传统的运行级别 3。通过目标机制,管理员可以灵活控制系统的运行状态。
探讨了systemd的特点后,我们就能够大概了解,为什么systemd可以在众多Linux的初始化程序中脱颖而出。
除了systemd,还有一些常用的初始化程序,例如SysV Init、Upstart等。
SysV Init: SysV Init最早出现在Unix系统中,后来也成为了初代Linux系统的标准初始化系统。但是因为串行启动速度慢、发杂的脚本化管理、没有依赖机制导致被慢慢主流淘汰。
Upstart:Upstart在SysV Init的基础上引入了事件驱动模型、并支持并发启动,出现后迅速大面积替代了 SysV Init,但是后来因为与systemd竞争失败并且缺少后续维护,慢慢也被主流淘汰。
systemd: sysmted因支持并行启动和依赖管理,集成日志和资源控制等功能,并提供了统一管理的工具,让它成为了目前Linux系统的主流管理器,并大面积使用至今。
(1)学习困难:由于 systemd 功能复杂,使用者可能需要更多的时间来学习如何配置和管理 systemd 服务。
(2)过于复杂的设计:有些用户认为systemd的设计过于庞大和复杂,尤其是其“一体化”设计,可能导致不必要的功能和增加了系统的复杂性。
(3)与传统系统兼容不完美:虽然目前大部分Linux发行版本都使用systemd,并且systemd一直在致力于提升兼容性问题,但因为复杂的涉及,可能会导致在Linux中移植较老的服务或传统init服务到systemd时候会遇到很多兼容问题。
所以systemd能够脱颖而出是因为它除了优秀的初始化机制,还提供了其他初始化系统不具备的功能和工具,并且随着时间的推移,systemd 的优势将更加显著。但是对用户来说,理解其复杂性以及它本身潜在的劣势依然还是一个挑战。
今天的分享就到这里啦,EBYTE每一天都致力于更好的助力物联化、智能化、自动化的发展,提升资源利用率,更多通信技术资料,感兴趣的小伙伴可以登录我们的亿佰特官网进行了解,也可以直接拨打400电话咨询技术专员!
相关阅读:
1、【服务器】Nginx Proxy Manager申请cloudflare泛域名教程
7 X 24 销售服务热线
4000-330-990深圳办事处柯经理:18218726658 南京办事处葛经理:17626012283
成都总部销售经理:
秦 科(无线模块):18884314654 冯子恒(无线模块):18884314734
蔡友银(无线模块):13882211021 葛宇龙(通信设备):19138800613
胡兵(外贸销售经理):18584911141、 sales06@ebyte.com
业务邮箱:support@cdebyte.com 全国销售投诉电话:19934352316
地址:四川省成都市高新西区西区大道199号B5栋(前台座机:028-61543675)
©© 成都亿佰特电子科技有限公司【版权所有】 蜀ICP备13019384号