day 22 系统服务

1、开机流程

(1)centos6的启动流程

内核引导:

当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。

操作系统接管硬件后,首先读入/boot目录下的内核文件。
image

运行init

init进程是指系统所有的进程起点,没有这个进程,系统中任何进程都不会启动
init程序首先是需要读取配置文件/etc/inittab。


image

运行级别

许多程序需要开机启动,在windows 家做 "服务",在linux叫做 ‘守护进程’。不同的场合需要启动不同的程序,比如用服务器时,需要启动Apache,用作桌面就不需要了。linux允许在不同的场合,分配不同的开机启动流程,就叫做 ‘运行级别’。启动时根据 ‘运行级别’ 确认运行的程序


image

centos启动流程完整的流程就是:


图片.png

(2)centos7启动流程

简单说就是首先按下电源--->然后就是开机自检(BIOS)-->然后进入(MBR)引导--->然后进入(GRUB)菜单-->然后进入配置文件,并行启动服务--->最后就进入login界面。详细流程如下
(硬件启动centos6和centos7是一样的)


图片.png
图片.png

图片.png

2、cntos6和centos7的区别

图片.png
命令 centos6 centos7
ifconfig 有 yum install -y net-tools
rouet 有 yum install -y net-tools
ntpd服务和ntpdate命令 有 yum install ntp ntpdate
cat/etc/isue 有版本号 无信息只能查看cat/etc/redhat-release
setup 能更改网络配置 setup祛除了防火墙和网络配置,通过安装yum install Network Manager-tui -y nmtui 命令取代了setup 中的网络配置
时区和时间设置 /etc/sysconfig/ciok等文件 timedatectl set-timezone Asia/Shanghai timedatectl stayus
语言等设置 locale -a localectl staeus
服务管理 chkonfig /etc/ini.d/服务 systemctl
python 2.6 2.7
kernel 2.6 3.10
网卡 etho 成为了可预见性的命令规则
文件系统 ext4 xfs
dig nslookup命令 有yum install bind-utils -y
主机名 cat/etc/sysconfig/network cat/hostname
服务的管理和控制 sysvinit system systemctl是最主要的工具。它融合service和chkonfig的功能于一体。
防火墙 iptables 被firewall取代
启动级别 /etc/inittab 不在使用了
开机执行文件/etc/rc.local 可放置开机要执行的脚本文件 默认这个文件没有执行权限 x (官方推荐不使用这个文件(自己写服务),但是你可以加+x继续使用。)
内核参数配置文件 /etc/sysctl.conf /usr/lib/sysctl.d/00-system.conf和/etc/sysctl.d/.conf
init关机重启命令 init 0 关机 init 0 关机
切换等级 切回单用户模式 init 0 init 0 systemctl emergency systemctl isolate runlevel1.target

3、运行级别

centos6

级别 含义
0 表示关机
1 表示单用户模式
2 暂未使用
3 表示字符界面(黑框)
4 暂未使用
5 表示图形界面
6 表示重启
总结: 0 6 关机 重启
3 5 字符 图形
2 4 没有使用
1 单用户
1、临时性的操作
[root@yangdan ~]# runlevel   查看级别
N 3
N  表示上一次是什么级别
3  表示当前运行级别
[root@yangdan ~]# init 3   切换到3级别上
永久操作就要进入配置文件/etc/inittab修改即可

centos7

级别 含义
0 表示关机
1 表示单用户模式
2 暂未使用
3 表示字符界面(黑框)
4 暂未使用
5 表示图形界面
6 表示重启
总结: 0 6 关机 重启
3 5 字符 图形
2 4 没有使用
1 单用户

(1)什么是运行级别

运行级别就是操作系统当前正在运行的功能级别

System V init运行级别 systemd目标名称 作用
0 runlevel0.target,poweroff.target 关机
1 runlevel1.target.resue.target 单用户模式
2 runlevel2.target,multi-user.target
3 runlevel3.target,mlit-user.target 多用户的文本界面
4 runlevel4.target,mulit-user.target
5 runlevel5.target,graphical.target 多用户的图形界面
6 runlevel6.target,rebot.target 重启
[root@yangdan ~]# cat /etc/inittab
# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3(看这两个就好)
# graphical.target: analogous to runlevel 5(同上)
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target

1、查看当前运行级别
[root@yangdan ~]# systemctl get-default 
multi-user.target

2、修改系统下次启动的运行级别
[root@yangdan ~]# systemctl get-default multi-user.target

(2) systemd的由来

init有两个缺点:1、启动时间长,init进程是串行启动,只有前一个进程启动完,才会启动下一进程
2、启动脚本复杂,初始化完成后系统会加载很多脚本,脚本都会处理各自情况,脚本多复杂

(3)systemd的优势

1、最新系统都采用systemd 管理(RedHat7、CentOS7、Ubuntu15等)
2、CentOS7支持开机并启动服务,显著提高开机启动效率
3、CentOS7关机只关闭正在运行的服务,而CentOS6全部关闭一次
4、CentOS7服务的启动与停止不再使用脚本进行管理,也就是/etc/init.d下不在有脚本
5、CentOS7使用systemd解决原有模式缺陷

(4)systemd相关配置文件

/usr/lib/systemd/system/ 类似CentOS6系统的启动脚本
/etc/systemd/sysytem/ 类似CentOS6系统 的/etc/rc.d/rcN.d、
/etc/systemd/system/mulit-user.target.wants/

systemctl命令 作用
systemctl starl crond.service 启动服务
systemctl stop crond.service 停止服务
systemctl restart crond.service 重启服务
systemctl reload crond.service 重新加载配置
systemctl status crond.servre 查看服务运行状态
systemctl is-active sshd.service 查看服务是否在运行中
systemctl mask crond.servre 禁止服务运行
systemctl unmask croud.servre 取消禁止服务运行

当使用systemctl启动一个守护进程后,可以通过systemctl xtatus 查看守护进程状态

状态 描述
loaded 服务单元的配置文件已经被处理
active(running) 服务持续运行
active(exited) 服务成功完成一次配置
active(waiting) 服务已经运行但在等待某个事件
inactive 服务没有在运行
enabled 服务设定为开机运行
disabled 服务设定为开机不运行
static 服务开机不启动,但可以被其他服务调用启动
[root@yangdan ~]# 关机
 shutdown -h now
 poweroff
 halt init 0 
systemctl poweroff
 [root@yangdan ~]#  重启 
reboot 
shutdown -r now 
init 6 
systemctl reboot

4单元模式

在使用Linux系统中,维护人员经常会碰到一个问题,就是在拥有root账号权限和密码的用户中,总是会出现忘记root密码的情况。

遇到这种情况,一般情况下,维护人员就会通过最常用的方法进行root密码重置,那就是单用户模式。

其次,单用户最突出且实用的一个好处就是:可以无密码登录,所以,在忘记密码时,可以进入单用户模式修改登录密码。
先重启系统

方法一:
在Linux系统启动 内核启动顺序选择界面(如下图倒计时的界面时) 按键盘任意键 让Linux引导启动停留内核选择阶段通过上下键(任意按键也可以的)让Linux引导启动停留内核选择阶段。

image

在上一个界面 计时 时按任意按键便可进入如下图界面,根据提示 键入小写字母e,进入下一步
images.jianshu.io/upload_images/18905180-af1dbf87bfd5f690.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

进入如下图界面后,选择kernel 开头这项(第二个)按下按键e,进入下一步

image

进入后会显示如下图这个界面 如图输入空格single后 按回车 编辑完毕

编辑完后回到第二步界面,直接输入b重新引导系统,系统重启后 会直接进入root用户模式下,在此模式下你就可以使用root功能的东西了

image

如上一步骤输入b后便重启系统 如下图所示 等待一会之后 就会进入单用户模式

image

进入单用户模式了 输入 passwd就可以更改密码了,然后就可以直接用passwd命令修改root

以上操作便是进入单用户模式下修改root密码,解决root密码忘记以及root用户被锁等需要root权限执行而root账户无法使用的问题。

方法二:
先重启系统

在Linux系统启动 内核启动顺序选择界面(如下图倒计时的界面时) 按键盘任意键 让Linux引导启动停留内核选择阶段通过上下键(任意按键也可以的)让Linux引导启动停留内核选择阶段。

image

在如下图界面键入字母 a

image

如下图 输入 (空格)1 回车 即可直接进入单用户模式

image

如上图输入完后 回车后等待一会 即可进入单用户模式

image

进入单用户模式一般是用于修改密码 修改完大部分人都会关机然后重启

这里有个便捷的方法 修改完密码后 直接按下快捷键ctrl+d 即可立即启动系统

你可能感兴趣的:(day 22 系统服务)