网站首页 > 技术文章 正文
随着公司业务的不断发展,各种学习机会也在不断增多。今天学习了Redhat7企业版,整理作成Systemd相关文章与大家共享。
何为Systemd
Systemd是linux下,进行启动处理,系统管理的一种init软件。Linux的启动处理
Linux的启动大致分为以下4个阶段进行。- 接通电源以后,启动BIOS。
- 从BIOS加载引导程序。
- 引导程序启动linux内核。
- Linux内核启动init程序(PID 1)
该init程序负责管理linux启动,之前使用的是Sysvinit,但近几年被以Ubuntu等采用的Upstart所取代。而且Fedora 15,CentOS 7,Red Hat Enterprise Linux 7采用的都是Systemd。
Systemd特征
1.不是一个shell脚本。Sysvinit的处理全部被写成shell脚本。因为与服务相关的动作被写在单一的脚本中进行处理,而不能进行细化。
Systemd的话,服务不是写成一个的脚本,而是作为配置文件,以Unit为单位进行管理。因此各项处理可进行细化,和单独有效地运行。而且还可以明确各个处理的依赖关系。甚至这些细化也可以并行运行。例如,像A处理后,由B和C并行处理这样的极其细致的设定也是可以实现的。
2.可灵活地执行进程的启动。
不仅是在linux系统启动时,而且也可以设置各种阀值启动进程。例如定时器,插座通信检测,文件系统挂载等。根据系统构成的变化也可以自动改变系统。例如,检测到新的磁盘设备时,就启动特定程序等。
3.非PID而是通过cgroup管理进程。
Sysvinit的话,服务是通过PID进行管理的。而Systemd则是通过cgroup进行管理的。若是PID的情况下,进程达到2次分歧,就直接断开父进程和子进程的关系。cgroup的话,即使发生多回分歧,也可以进行管理。
但是,cgroup是linux内核的功能。Linux以外是不能使用的,这也是Systemd的限制,只有在linux内核上才能运行。
4.Systemd的历史
Systemd是以Lennart Poettering和Kay Sievers为中心开发的。2010年3月发行最初的版本之后,搭载在2011年发行的Fedora 15上。
2012年发行的Red Hat Forum 2012,Red Hat Enterprise Linux 7都声明采用了Systemd。 而且,2014年12月发行的Centos7已从Sysvinit变更为systemd。
后话
现在,包括Fedora、CentOS、RedHat Enterprise Linux,openSUSE和SUSE Linux Enterprise Server、Oracle Linux、CoreOS、Arch Linux等将systemd作为默认的init系统。而且Debian下期版本8(jessie)也要采用Systemd,尽管有Systemd反对派的反对,但是Systemd已成为一种标准。
猜你喜欢
- 2025-08-01 使用 Checkmk 监控 Oracle 服务器
- 2025-08-01 核心库CPU飙到99%了!我发现很多DBA都不会看日志……
- 2025-08-01 China's CETC Kingbase Unveils AI-Powered Database Appliances Amid Rising Demand for Intelligent Data Infrastructure
- 2025-08-01 Docker安装部署Oracle/Sql Server
- 2025-08-01 Oracle数据库安装 | 步骤详细
- 2025-05-09 Linux 安装Oracle11.2.0.4 (静默安装法)
- 2025-05-09 Oracle 10g安装64位图解流程(Oracle 10g安装64位图解流程图怎么画)
- 2025-05-09 Centos7命令行安装Oracle11g(centos7安装oracle11g数据库)
- 2024-07-23 Centos离线静默安装 oracle11g,步骤细验证成功
- 2024-07-23 Oracle与MySql知识汇总(oracle和mysql语句一样吗)
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)