Linux之引导和服务

一、引导过程

  • kernel内核
  • rootfs包括程序和glibc库

操作系统存储在

  1. 硬盘
  2. 光驱或U盘
  3. 网络的远端机器

GRUB 统一启动加载器 加载操作系统

  1. 加电自检 检测硬件是否有故障 如果无故障 就去bios中设置的第一个启动项找操作系统
  2. 第一启动是硬盘,MBR引导 第一个扇区的前446字节,有一个GRUP程序第一阶段,引导硬件找到grup完整的程序
  3. grup会根据grup.cfg配置文件找到操纵系统
  4. 加载内核(操纵系统)
  5. 祖宗进程 centos7 systemd并行 centos6 init串行 启动程序

二、systemd服务

Systemd新特性

  • 系统引导时实现服务并行启动

  • 按需启动守护进程

  • 自动化的服务依赖关系管理

  • 同时采用socket式与D-Bus总线式激活服务

  • socket与服务程序分离

  • 向后兼容sysv init脚本

  • 使用systemctl 命令管理,systemctl命令固定不变,不可扩展,非由systemd启动的服务,

  • systemctl无法与之通信和控制

  • 系统状态快照

service unit文件格式

service unit file文件通常由三部分组成:

  • [Unit]:定义与Unit类型无关的通用选项;用于提供unit的描述信息、unit行为及依赖关系等
  • [Service]:与特定类型相关的专用选项;此处为Service类型
  • [Install]:定义由“systemctl enable”以及"systemctl disable“命令在实现服务启用或禁用时用到的一些选项

unit 格式说明:

  • 以 “#” 开头的行后面的内容会被认为是注释
  • 相关布尔值,1、yes、on、true 都是开启,0、no、off、false 都是关闭
  • 时间单位默认是秒,所以要用毫秒(ms)分钟(m)等须显式说明

Unit段的常用选项:

  • Description:描述信息
  • After:定义unit的启动次序,表示当前unit应该晚于哪些unit启动,其功能与Before相反
  • Requires:依赖到的其它units,强依赖,被依赖的units无法激活时,当前unit也无法激活
  • Wants:依赖到的其它units,弱依赖
  • Conflicts:定义units间的冲突关系

Service段的常用选项:

  • Type:定义影响ExecStart及相关参数的功能的unit进程启动类型
  1. ​ simple:默认值,这个daemon主要由ExecStart接的指令串来启动,启动后常驻于内存中
  2. ​ forking:由ExecStart启动的程序透过spawns延伸出其他子程序来作为此daemon的主要服务。原生父程序在启动结束后就会终止
  3. ​ oneshot:与simple类似,不过这个程序在工作完毕后就结束了,不会常驻在内存中
  4. ​ dbus:与simple类似,但这个daemon必须要在取得一个D-Bus的名称后,才会继续运作.因此通常也要同时设定BusNname= 才行
  5. ​ notify:在启动完成后会发送一个通知消息。还需要配合 NotifyAccess 来让 Systemd 接收消息
  6. ​ idle:与simple类似,要执行这个daemon必须要所有的工作都顺利执行完毕后才会执行。这类的daemon通常是开机到最后才执行即可的服务
  • EnvironmentFile:环境配置文件
  • ExecStart:指明启动unit要运行命令或脚本的绝对路径
  • ExecStartPre: ExecStart前运行
  • ExecStartPost: ExecStart后运行
  • ExecStop:指明停止unit要运行的命令或脚本
  • Restart:当设定Restart=1 时,则当次daemon服务意外终止后,会再次自动启动此服务
  • RestartSec: 设置在重启服务( Restart= )前暂停多长时间。 默认值是100毫秒(100ms)。 如果未指
  • 定时间单位,那么将视为以秒为单位。 例如设为"20"等价于设为"20s"。
  • PrivateTmp:设定为yes时,会在生成/tmp/systemd-private-UUID-NAME.service-XXXXX/tmp/目录

Install段的常用选项:

Alias:别名,可使用systemctl command Alias.service

RequiredBy:被哪些units所依赖,强依赖

WantedBy:被哪些units所依赖,弱依赖

Also:安装本服务的时候还要安装别的相关服务

控制类型

服务:为其他机器提供服务
systemctl start #启动
systemctl status #状态
systemctl stop #停止
systemctl restart #重启
systemctl reload #重新加载配置文件不影响进程
systemctl enable #开机自启
systemctl disable #开机不自启
systemctl enable --now #开机自启并且立马启动
systemctl disable --now #开机不自启并且立马关闭

有.service文件 /usr/lib/systemd/system

运行级别

  • 0 关机
  • 1 单用户
  • 2 功能不全的字符界面,缺少网络块
  • 3 完整的字符界面
  • 4 未被使用的字符
  • 5 图形
  • 6 重启

三、修改密码实验

posted @ 2023-07-26 23:42  德国南部之星  阅读(33)  评论(0)    收藏  举报