Linux系统服务 day23

作者: 静如止水yw | 来源:发表于2019-08-23 21:22 被阅读0次

    1.系统服务
    2.systemd的使用
    3.单用户模式
    4.救援模式


    一、系统服务


    1.centos6的启动流程

    主要分为5个阶段:

    • 内核的引导
    • 运行init
    • 系统的初始化
    • 建立终端
    • 用户登录系统
    • 内核引导

    内核引导分为两个步骤:
    a. 打开电源,开始BIOS自检,启动操作系统
    b. 操作系统启动后,读入/boot目录下的内核文件

    • 运行init

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

    • 系统初始化

    在init的配置文件中有这么一行: si::sysinit:/etc/rc.d/rc.sysinit 它调用执行了/etc/rc.d/rc.sysinit,而rc.sysinit是一个bash shell的脚本,它主要是完成一些系统初始化的工作,rc.sysinit是每一个运行级别都要首先运行的重要脚本。
    它主要完成的工作有:激活交换分区,检查磁盘,加载硬件模块以及其它一些需要优先执行任务。

    • 建立终端

    rc执行完毕后,返回init。这时基本系统环境已经设置好了,各种守护进程也已经启动了。
    init接下来会打开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)图形界面登录

    用图形表示centos6启动流程为 centos6启动流程
    2.centos7启动流程

    centos7的启动流程与centos6的启动流程基本相似,分为5个阶段:

    • 按下电源
    • 开机自检(BIOS)
    • MBR引导
    • GRUB菜单
    • 加载内核
    用图形表示centos7的启动流程 centos7启动流程
    • centos6与centos7的区别
    区别
    centos 6与centos 7运行级别的区别
    什么是运行级别:
    运行级别就是操作系统当前正在运行的功能级别
    centos 6运行级别 centos 7运行级别 作用
    0 runlevel0.target,poweroff.target 关机
    1 runlevel1.target,rescue.target 单用户模式
    2 runleve2.target,multi-user.target
    3 runlevel3.target,multi-user.target 多用户的文本界面
    4 runlevel4.target,multi-user.target
    5 runlevel5.target,graphical.target 多用户的图形界面
    6 runlevel6.target,reboot.target 重启
    # 查看当前运行级别
    [root@wyw-10 ~]# systemctl get-default
    multi-user.target
    
    # 修改系统下次启动时候的运行级别
    [root@wyw-10 ~]# systemctl set-default multi-user.target
    
    二、systemd
    systemctl start nginx 
    systemctl stop nginx 
    systemctl restart nginx 
    systemctl reload nginx 
    systemclt status nginx
    
    systemctl enable nginx      #下一次开机启动nginx,与当前无关 
    systemctl disable nginx     #下一次开机不启动nginx,与当前无关
    

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

    状态 描述
    loaded 服务单元的配置文件已经被处理
    active(running) 服务持续运行
    active(exited) 服务成功弯沉过一次配置
    active(waiting) 服务已经运行但在等待某个事件
    inactive 服务没有在运行
    enable 服务设定为开机运行
    disable 服务设定为开机不运行
    static 服务开机不启动,但可以被其他服务调用启动

    关机
    shutdown -h now
    poweroff
    halt
    init 0
    systemctl poweroff
    重启
    reboot
    shutdown -r now
    init 6
    systemctl reboot

    四、单用户模式
    • 能正常引导进入系统
      1)配置文件错误导致无法启动
      2)忘记root密码
      (1)重新启动或开启CentOS7.6系统,在选择进入系统的Grub菜单界面如下图,根据提示按“e”小写字母进入编辑界面 centos7.6系统grub菜单界面
      (2)然后,要按方向键向下键(否则可能看不到想要找的行),找到以字符串“Linux16”开头的行,将光标移动到该行的结尾,然后输入“init=/bin/bash”,如下图所示:
      进入编辑界面配置图 特别说明:
      如果不确定系统是否开启了Selinux或者刚装完没有修改过的系统,则最好用下面的方法解决:既在以字符串“Linux16”开头的行,将光标移动到该行的结尾,然后输入“init=/bin/bash enforcing=0”(前者作用让系统登录后加载bash解释器,后者是且关闭Selinux),如下图所示:
      关闭Linux配置图
      (3)配置完成后,根据界面下面的英文提示按“Ctrl-x”组合键以单用户模式启动Linux如下图所示:
      重新挂载修改密码图界面 特殊说明:
      1)图中的“mount-o rw,remount/”命令是重新挂载根目录为可写状态(rw表示可写,remount是重新挂载),在单用户模式下默认根文件系统是处于只读状态。
      2)也可以在增加内核参数时,把以字符串“Linux16”开头的行中间部分的ro参数改为rw,则可以替代繁琐的“mount-o rw,remount /”命令,修改方法如下图所示:
      修改内核参数 (4)配置完后,执行exec /sbin/init命令重启系统
      PS:无法使用其它重启命令时,需要多执行一条“touch /.autorelabel”命令以便在下次系统引导前重新标记系统中的所有相关文件
      处理SELinux以及重启系统界面 (5)重启系统后验证修改后的密码是否能登录,出现如下图所示,表示密码修改并登录成功
      登陆界面
    五、救援模式

    系统无法正常进入 比如没有内核 比如grub被修改 比如系统崩溃
    (1)没有内核文件,只能使用救援模式进入
    1)先打开电源固件,加载固件


    加载光盘固件

    2)进入救援模式后,根据提示输入chroot /mnt/sysimage


    进入救援模式
    3)找到vmlinux后,移到/boot下,保存后重启
    找到vmlinux镜像文件
    4)重启之后,进入登录界面
    image.png

    (2)系统崩溃,要保留重要数据的时候
    1)首先加一块硬盘存储数据


    新加一块硬盘
    2)打开救援模式
    1
    2
    3)进入命令行模式后,挂载(mount /dev/sdb /data/)
    image.png (3)grub菜单出现问题
    1)模拟grub菜单出现问题
    image.png
    2)进入救援模式后,输入grub2-install /dev/sda,保存重启

    相关文章

      网友评论

        本文标题:Linux系统服务 day23

        本文链接:https://www.haomeiwen.com/subject/jbctectx.html