系统管理-系统启动

upstart的启动方式

upstart的特色

upstart解决了以前提到的sysvinit的缺点,采用时间驱动模型,upstart能够:shell

更快地启动系统
当新硬件被发现时动态启动服务
硬件被拔除时动态中止服务
这些特色使得upstart能够很好地应用在桌面或者便携式系统中,处理这些系统中的动态硬件插拔特性

upstart启动过程:centos

系统通电后运行GRUB载入内核。内核执行硬件初始化和内核自身初始化。在内核初始化最后,内核将启动pid为1的init进程,即upstart进程。服务器

upstart进程在执行了一些自身的初始化工做后,当即发出“starup”事件。上图中的红色箭头表示事件,能够在左上方看到“startup事件”。网络

全部依赖于“startup”事件的工做被触发,其中最重要的是mountall,mountall任务负责挂载系统中须要使用的文件系统。完成相应的工做后,mount任务会发出如下dom

事件:local-filesystem,virtual-filesystem,all-swapsssh

 此时,任务rc-sysinit会被触发,由于rc-sysinit的start on 条件以下:socket

start on filesystem and net-device-up IFACE=io

任务rc-sysinit调用telinit,telinit、任务会发出runlevel事件,触发执行/etc/init/rc.conf。rc.conf执行/etc/rc$.d/目录下的全部脚本,和sysvinit很是类似。centos7

了解systemd启动方式

systemd简介spa

系统启动和服务器进程是由systemd系统和服务管理器进行管理。此程序提供了一种方式,能够在启动时和运行中的系统上激活系统资源,服务器守护进程和其它进程
守护进程是在执行各类任务的后台等待或者运行的进程,为了监听连接,收回进程时候socket,socket能够由守护进程建立,或与守护进程分离,而且可能由另外一个进程建立,随后在客户端创建链接时经过socket传递到守护进程
服务一般指定的是一个或者多个守护进程,单启动或中止一个服务可能会对系统的状态进行一次更改,不会留下守护进程以后继续运行。

在centos7中,pid属于systed这一个新的init系统,systemd提供了几项新的功能:操作系统

并行化功能,它可提升系统的启动速度
按需启动守护进程,而不须要单独的服务
自动管理服务依赖关系,能够方式长时间超时,
利用Linux cgroup一块儿跟踪相关进程的方式
在系统启动过程当中要设计多个不一样的组件,按下开机按钮后,首先BIOS/UEFI作最基本的硬件自检与初始化,
而后加载预设/手动选择的磁盘/网络上的引导加载器,引导加载器进一步从磁盘/网络上加载操做系统内核
对于Linux来讲,内核将会解压一个initrd镜像
并执行由指定的init程序,以寻找并挂载根文件系统
完成根文件系统的挂载以后,内核启动指定的init程序以及管理系统的控制权
该init程序将会负责检测全部其余的硬件设备,挂载必要的文件系统,启动必要的服务等等
关机时,init程序将会中止全部服务,卸载全部的问价系统,返回initrd环境,卸载根文件系统,关闭电源

注意:

有了systemd,基于shell的服务脚本仅用于几个传统服务,所以,带有shell变量的配置文件将被取代,如/etc/sysconfig中能够找到配置文件,仍在使用中的配置文件做为systemd环境文件被导入,并做为NAME=VALUE对进行读取他们再也不以shell脚本的形式提供
systemctl和systemd unit
systectl命令用于管理各类类型的systemd对象,他们成为单元,能够经过systemctl -t help命令显示可用unit类型的类表。

如下是一些经常使用的unit类型

.service unit扩展名为.service,表示系统服务。这总unit用于启动常常访问的守护进程,如Web服务器
.socket unit 扩展名为.socket ,表示IPC(进程间通讯)socket。
.path unit扩展名为.path, 用于将服务器的激活推迟到特定文件发生更改以后

服务状态

能够经过systemctl status name.type查看服务的状态,若是为提供unit类型,则systemctl将显示服务unit的状态(若是存在)

[root@localhost ~]# systemctl status sshd.service 
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since 三 2018-08-29 11:19:31 CST; 22h ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 1054 (sshd)
   CGroup: /system.slice/sshd.service
           └─1054 /usr/sbin/sshd -D

8月 29 11:19:31 localhost.localdomain systemd[1]: Starting OpenSSH server daemon...
8月 29 11:19:31 localhost.localdomain sshd[1054]: Server listening on 0.0.0.0 port 22.
8月 29 11:19:31 localhost.localdomain sshd[1054]: Server listening on :: port 22.
8月 29 11:19:31 localhost.localdomain systemd[1]: Started OpenSSH server daemon.
8月 29 11:21:11 localhost.localdomain sshd[3054]: Accepted password for root from 10....2
8月 30 08:49:36 localhost.localdomain sshd[8762]: Accepted password for root from 10....2
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost ~]# 
关键字:描述
loaded unit配置文件已处理
active(running) 一个或者多个进程正在持续运行
active(exited)一成功完成一次配置
active(waiting)运行中,可是正在等待event
inactive 没有运行
enabled 将在系统启动时启动
disabled 不会在系统启动时启动
static 没法启动,但能够由某一启动的unit自启启动

更多详情请百度。。概念性的东西不想写。。

相关文章
相关标签/搜索