引导和服务

一、引导过程

 1.1 开机启动的完整过程

  1.bios加电自检

    bios:检测硬件是否正常,然后根据bios中的启动项设置找内核文件

    boot开机启动顺序(你可以把内核文件放在何处)

      1.硬盘

      2.移动设备,U盘,移动硬盘,光驱

      3.网络启动

  2.mbr

    mbr(二进制):应grub太大第一个扇区存不下,所有的grub程序分为2部分,指引硬件找到内核文件。

  3.grub

    grub(高级语言):根据grub配置文件(grub.cfg)中的记录位置去找到内核文件

  4.加载内核文件

    加载内核:把内核运行在内存中

  5.启动第一个进程

    启动进程:启动第一个祖宗进程

   区别:

版本 接口 特点 功能
centos6 串口 速度较慢,效率低下 按顺序启动
centos7 并口 少进程,高效率 全部一起启动

  

 

 

二、服务

  2.1 systemd服务

    与5比较,6可以解决依赖关系

    按需启动

   System新特性

    yum以及rpm安装的软件可以直接使用systemctl去启动、关机、重启、开机自启

    编译安装不可以使用systemctl命令去管理程序,需要手写一个配置文件

    systemd unit(单元)Lsystemd方便管理程序,将程序按照特定的功能分成了很多单元

    服务单元 写配置文件

    文件路径

    挂载

    socket与服务程序分离

在systemd中不同类型的systemd对象被统一称为单元,是让系统知道该如何进行操作和管理资源的主要对象,所以systemd有许多单元类型。
systemd单元文件最初默认存放在/lib/systemd/system目录中,每当安装新的软件都会自动在这个目录中添加一个配置文件。
systemctl 命令用于管理各种类型的systemd单元,可以使用“systemctl -t help”命令来查询systemd支持的单元类型。

单元类型 扩展名 说明
Service .service 扩展名
Socket .socket 描述一个进程间通信的套接字
Device .device 描述一个内核识别的设备文件
Mount .mount 描述一个文件系统的挂载点
Automount .automount 描述一个文件系统的自动挂载点
Swap .swap 描述一个内存交换设备或目录
Timer .timer 描述一个定时器(类似于cron的调度任务)
Path .path 描述一个文件系统中文件或目录(path路径)
Snapshot .snapshot 用于保存一个systemd的状态(snapshot快照)
Scope .scope 使用systemd的总线接口以编程的方式创建外部进程
Slice .slice 描述Cgroup的一组通过层次组织的管理系统进程
Target .target 描述一组systemd的单元(target目标)

引导和服务_第1张图片

引导和服务_第2张图片

引导和服务_第3张图片

  2.2 service unit文件格式

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

      [Unit]:用于提供unit的描述信息、unit行为及依赖关系

      [Service]:与特定类型相关的专用选项

      [Install]:由“systemctl enable”以及"systemctl disable“命令在实现服务启用或禁用时用到的一些选项

    Unit格式说明:

      以“#” 开头行后面的内容会被认为是注释

      时间默认是

    Unit常用的选项:

      Description:描述信息

      After:表示当前unit应该晚于哪些unit启动

      Before:表示当前unit应该早于哪些unit启动

      Requires:强依赖

      Wants:弱依赖

      Conficts:定义域units间的冲突

    Service常用的选项:

      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:安装本服务的时候还要安装别的相关服务

  2.3 设置运行级别

    格式:systemctl [command] [unit.target]

    command参数:

      systemctl get-default 查看默认的运行级别

      systemctl set-default 设置默认的级别

  2.4 服务管理

    1.chkconfig centos6

       service 服务程序 start

       service 服务程序 stop

       service 服务程序 restart

       service 服务程序 reload

       service 服务程序 status

     再/etc/init.d/写一个同名文件的脚本(必须要有执行权限)

       chkconfig --add 35 服务名称

       chkconfig --level 35 服务程序 on 开机自启

       chkconfig --level 35 服务程序 off 关闭开机自启

    2.systemd centos7

      systemctl start 服务名

      systemctl stop 服务名

      systemctl status 服务名

      systemctl reload 服务名

      systemctl restart 服务名

    开机自启

      systemctl enable 服务名

    开机自启,并立即启动

     systemctl enable --now 服务名

    开机不自启

      systemctl disable 服务名

    开机不自启,并立即关闭

      systemctl disable --now 服务名

你可能感兴趣的:(linux,开发语言,centos,运维,服务器,网络)