linux系统启动服务127,Linux系统启动流程及服务控制

博文结构

启动5个阶段

Linux关机

什么是daemon与服务(service)

通过systemctl管理服务

Systemctl针对service类型的配置文件

一.启动5个阶段:

a8da29f38ce94f2b0c57dbb2f083d160.png

内核的引导。

运行 init。

系统初始化。

建立终端 。

用户登录系统。

1.开机自检

服务器主机开机之后,将根据主板BIOS中的设置对CPU、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交本机硬盘;

2.MBR引导

当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR(主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根据MBR记录中的引导信息调用启动菜单(如GRUB);

3.GRUB菜单

对于Linux操作系统来说,GRUB(统一启动加载器)是使用最为广泛的多系统引导器程序。系统控制权传递给GRUB后,将会显示启动菜单给用户选择,并根据所选项(或采用默认值)加载Linux内核文件,然后将系统控制权转交给内核。需要注意的是,Centos 7 采用的是GRUB2启动引导器。

4.加载Linux内核

Linux内个是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权以后,将会完全掌握整个Linux操作系统的运行过程。在Centos 系统中,默认的内核文件是“/boot/vmlinuz-3.10.0-514.el7.x86_64”。

5.init进程初始化

为了进一步的系统引导过程,Linux内核首先将系统中的“/sbin/init”程序加载到内存中运行,init进程负责完成一系列的系统初始化过程,最后等待用户进行登录。

二.init程序的类型:

SysV: init, CentOS 5之前, 配置文件: /etc/inittab。

Upstart: init,CentOS 6, 配置文件: /etc/inittab, /etc/init/*.conf。

Systemd: systemd, CentOS 7,配置文件: /usr/lib/systemd/system、 /etc/systemd/system。

三.运行级别

Linux系统有7个运行级别(runlevel):

运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动

运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆

运行级别2:多用户状态(没有NFS)

运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式

运行级别4:系统未使用,保留

运行级别5:X11控制台,登陆后进入图形GUI模式

运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

在inittab中的以下6行就是定义了6个终端:

1:2345:respawn:/sbin/mingetty tty1

2:2345:respawn:/sbin/mingetty tty2

3:2345:respawn:/sbin/mingetty tty3

4:2345:respawn:/sbin/mingetty tty4

5:2345:respawn:/sbin/mingetty tty5

6:2345:respawn:/sbin/mingetty tty6

用户登录系统

一般来说,用户的登录方式有三种:

(1)命令行登录

(2)ssh登录

(3)图形界面登录

四.图形模式与文字模式的切换方式

Linux预设提供了六个命令窗口终端机让我们来登录。

默认我们登录的就是第一个窗口,也就是tty1,这个六个窗口分别为tty1,tty2 … tty6,你可以按下Ctrl + Alt + F1 ~ F6 来切换它们。

552d71c843b9daba059b42603212136f.png

sync 将数据由内存同步到硬盘中

shutdown 关机指令

shutdown –h now 立马关机

shutdown –h 20:25 系统会在今天20:25关机

shutdown –h +10 是分钟后关机

shutdown –r now 系统立马重启

shutdown –r +10 系统十分钟后重启

reboot 重启 == shutdown –r now

halt 关闭系统

正确的关机流程为:sync > shutdown > reboot > halt

不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中。

关机的命令有 shutdown –h now poweroff 和 init 0

重启系统的命令有 shutdown –r now reboot init 6

服务的启动、关闭与观察等方式:

启动:/etc/init.d/daemon start

关闭:/etc/init.d/daemon stop

重新启动:/etc/init.d/daemon restart

状态观察:/etc/init.d/daemon status

服务启动的分类:

服务的相依性问题:

执行等级的分类:

制定执行等级默认要启动的服务:

默认要启动: chkconfig daemon on

默认不启动: chkconfig daemon off

观察默认为启动否: chkconfig --list daemon

执行等级的切换行为: init3 init 5(纯切换到图形界面)

五.什么是daemon与服务(service)

(1)systemd好处如下:

平行处理所有服务,加速开机流程:

一经要求就回应的 on-demand 启动方式(systemctl)

服务相依性的自我检查:

依 daemon 功能分类:unit(服务单位)

将多个 daemons 集合成为一个群组:

向下相容旧有的 init 服务脚本:

(2)systemd 的配置文件放置目录

/usr/lib/systemd/system/:每个服务最主要的启动脚本设置,有点类似以前的 /etc/init.d 下面的文件;

/run/systemd/system/:系统执行过程中所产生的服务脚本,这些脚本的优先序要比 /usr/lib/systemd/system/ 高!

/etc/systemd/system/:管理员依据主机系统的需求所创建的执行脚本,其实这个目录有点像以前 /etc/rc.d/rc5.d/Sxx 之类的功 能!执行优先序又比 /run/systemd/system/ 高

(3)daemon与服务(service)

c625e600a9dd788f708c98a8f54ea30d.png

(4)通过systemctl管理服务

1、active (running):正有一只或多只程序正在系统中执行的意思,举例来说,正在执行中的 vsftpd 就是这种模式。

2、active (exited):仅执行一次就正常结束的服务,目前并没有任何程序在系统中执行。 举例来说,开机或者是挂载时才会进 行一次的 quotaon 功能,就是这种模式! quotaon 不须一直执行~只须执行一次之后,就交给文件系统去自行处理啰!通常用 bash shell 写的小型服务,大多是属于这种类型 (无须常驻内存)。

3、active (waiting):正在执行当中,不过还再等待其他的事件才能继续处理。

4、inactive:这个服务目前没有运行的意思。 既然 daemon 目前的状态就有这么多种了,那么 daemon 的默认状态有没有可能除了

5、enabled:这个 daemon 将在开机时被执行

6、disabled:这个 daemon 在开机时不会被执行

7、static:这个 daemon 不可以自己启动 (enable 不可),不过可能会被其他的 enabled 的服务来唤醒 (相依属性的服务)

8、mask:这个 daemon 无论如何都无法被启动!因为已经被强制注销 (非删除)。可通过 systemctl unmask 方式改回原本状态

举例说明

强迫服务注销 (mask)

root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# systemctl mask firewalld \\就是把启动的脚本清除

[root@localhost ~]# systemctl status firewalld

● firewalld.service

Loaded: masked (/dev/null; bad)

Active: inactive (dead) since 六 2019-11-23 23:05:22 CST; 17s ago

Main PID: 752 (code=exited, status=0/SUCCESS)

11月 23 23:03:40 localhost.localdomain systemd[1]: Starting firewalld - dynamic fi....

11月 23 23:03:43 localhost.localdomain systemd[1]: Started firewalld - dynamic fir....

11月 23 23:05:22 localhost.localdomain systemd[1]: Stopping firewalld.service...

11月 23 23:05:22 localhost.localdomain systemd[1]: Stopped firewalld.service.

Hint: Some lines were ellipsized, use -l to show in full.

[root@localhost ~]#

[root@localhost ~]# systemctl unmask firewalld \\解除mask

[root@localhost ~]# systemctl status firewalld

六.CentOS 7.1 的默认情况下,就有 26 个 target unit

主要有下面几个

graphical.target:就是文字加上图形界面,这个项目已经包含了下面的 multi-user.target 项目!

multi-user.target:纯文本模式!

rescue.target:在无法使用 root 登陆的情况下,systemd 在开机时会多加一个额外的暂时系统,与你原本的系统无关。这时你可以取得 root 的权限来维护你的系统。 但是这是额外系统,因此可能需要动到 chroot 的方式来取得你原有的系统

emergency.target:紧急处理系统的错误,还是需要使用 root 登陆的情况,在无法使用 rescue.target 时,可以尝试使用这种模 式!

5.shutdown.target:就是关机的流程。

6.getty.target:可以设置你需要几个 tty 之类的,如果想要降低 tty 的项目,可以修改这个东西的配置文件!

正常的模式是 multi-user.target 以及 graphical.target 两个,救援方面的模式主要是 rescue.target 以及更严重的 emergency.target。 如果要修改可提供登陆的 tty 数量,则修改 getty.target 项目。基本上,我们最常使用的当然就是 multi-user 以及 graphical

[root@localhost ~]# systemctl poweroff \\系统关机

[root@localhost ~]# systemctl reboot \\重新开机

[root@localhost ~]# systemctl suspend \\进入暂停模式

[root@localhost ~]# systemctl hibernate \\进入休眠模式

[root@localhost ~]# systemctl rescue \\强制进入救援模式

[root@localhost ~]# systemctl emergency \\强制进入紧急救援模式

来源:https://blog.51cto.com/14400213/2452815?source=dra

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值