zoukankan      html  css  js  c++  java
  • 系统启动-服务-登录流程-内核参数-selinux

      过程 首先经过加电自检,POST:Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内存、硬盘子系统、显示子系统、串并行接口、键盘等硬件情况的检测,并且通过BIOS确定一个引导设备,然后就去加载这个设备的前512个字节(MBR表),前446字节 bootloader,中间64字节 分区表,最后2字节 55AA。

    bootloader就是启动时所需要运行的程序,对于Linux来说bootloader就是GRUB,启动GRUB由两阶段组成,第一阶段在MBR的前446字节中,第二阶段在 /boot/GRUB/,GRUB目的就是找到内核文件(内核最核心的文件就是 核心文件:/boot/vmlinuz- VERSION -release),/boot/grub/grub.conf 文件就写的有 内核文件在哪里。然后就加载内核文件。

        查看硬盘的前512字节 : hexdump  -C  -n  512  /dev/sda

        lsmod 查看当前加载到内存中的所有驱动

        卸载模块  rmmod  ext3

    centos6 系统启动过程

    • 1.加载BIOS的硬件信息,获取第一个启动设备
    • 2.读取第一个启动设备MBR的引导加载程序(grub)的启动信息
    • 3.加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备
    • 4.核心执行init程序,并获取默认的运行信息
    • 5.init程序执行/etc/rc.d/rc.sysinit文件
    • 6.启动核心的外挂模块
    • 7.init执行运行的各个批处理文件(scripts)
    • 8.init执行/etc/rc.d/rc.local
    • 9.执行/bin/login程序,等待用户登录
    • 10.登录之后开始以Shell控制主机

    在GRUB的过程中会加载内核,很重要就是加载  /boot/vmlinux与/boot/initramfs.img文件

    加载内核文件,内核文件就在光盘中存在的,和光盘中的文件对比,看得出文件一模一样,所以如果你这个文件丢了,还可以通过光盘找回,initramfs.img 文件其实是一个小的操作系统,在启动的时候需要找到他加载驱动程序,如果他丢了也是通过光盘救援找到,  1 rescue mode   2 chroot /mnt/sysimage  3 mkinitrd /boot/initramfs-`uname -r`.img `uname -r`   4 exit;exit;reboot  以上四步可以找到。

         

     救援模式

    首先连接光盘,然后开机,在加载进度条的时候,按下ESC键,使用光盘启动,在实际工作中,按F2或者DEL,调出BIOS,设置光盘启动

          

     然后选择1.

            

     df查看当前挂载情况,做完操作之后,然后exit退出就行了自动重启。

     运行 init进程时  就会加载  /etc/initab

     系统运行级别

     

    /etc/inittab 文件定义了系统的默认启动方式,同时也指定了,每个系统运行级别,后面有个参数,就是指定要去加载那个rc#.d/下面的脚本,比如当前运行级别为3,就会加载rc3.d下面的脚本文件,这些服务脚本,主要是K/S 开头的,K表示停止,S表示运行。数字的含义就是表示顺序。越大表示越后面。而在每个rc#.d/下面都有一个S99local-->rc.local。所以/etc/rc.d/rc.local的作用就是,开机你想运行的脚本 扔在这里就可以了。而对于Centos7就要加上X权限才可以使用

    自己编写Centos6 服务脚本

    版本6

    Service atd restart   service 其实就是 运行一个脚本  /etc/init.d/SCRIPT

    chkconfig  --list  查看系统服务列表(自启情况)

        on 表示 开启 off表示关闭

    chkconfig vsftpd  on/off   全开 在2 3  4 5 状态下开启

     /etc/rc.d/rc.local     /etc/rc.local   这两个文件 开机就会运行,所以也可以把启动命令写在这里,就可以做到开机自启

    xinetd 瞬态服务

    对于一些访问量不大的服务来讲,你还要跑,因为有很少一部分还是需要用到的,你服务一直开启也是一个浪费,所以会有xinetd服务去代理,这些访问量不大的服务都由xinetd去代理,平常只有xinetd服务开启,当有用户访问服务时,由xinetd去唤醒对应的服务提供服务,当服务完成时,对应的服务就会关掉,但是xinetd服务会一直开启。而在CentOS7上已经没有xinetd了,由systemd完成的。

     Centos7来讲,系统第一个进程已经不是init,而是systemd,它不再去读取inittab文件

    版本7

    /usr/lib/systemd/system:每个服务最主要的启动脚本设置,类似于之前的 /etc/init.d/ 

    /usr/lib/systemd/system/atd.service

    命令:systemctl COMMAND name.service 

    • 重载或重启服务:先加载,再启动  systemctl reload-or-restart name.service 
    • 查看某服务当前激活与否的状态:  systemctl is-active name.service
    • 查看所有已经激活的服务:  systemctl list-units --type|-t service 
    • 查看所有服务:  systemctl list-units --type service --all|-a 
    • 查看所有服务的开机自启状态:  chkconfig --list ==> systemctl list-unit-files --type service 
    • 用来列出该服务在哪些运行级别下启用和禁用  chkconfig sshd –list ==>      ls /etc/systemd/system/*.wants/sshd.service
    • 查看服务是否开机自启:  systemctl is-enabled name.service
    • systemctl    restart  atd.service 
    • systemctl disable crond.service
    •  systemctl enable crond.service

    Centos7添加服务到 systemctl管理中

    注意:对于新创建的unit文件,或者修改了的unit文件,要通知systemd重载此 配置文件,而后可以选择重启  systemctl  daemon-reload  

    开机默认 运行级别

     

    用户登录流程

    全局配置: 

      /etc/profile 

      /etc/profile.d/*.sh 

      /etc/bashrc

    个人配置: 

      ~/.bash_profile 

      ~/.bashrc

    用户登录脚本执行顺序

        执行顺序:/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

     

    全局:  /etc/profile, /etc/profile.d/*.sh 

    个人:   ~/.bash_profile 

    功用:  (1) 用于定义环境变量  (2) 运行命令或脚本

    全局:/etc/bashrc 

    个人:~/.bashrc 

    功用:  (1) 定义命令别名和函数  (2) 定义本地变量 

      修改profile和bashrc文件后需生效 

         source  /etc/profile

    退出任务

      ~/.bash_logout文件中(用户)     创建自动备份    清除临时文件

     

     内核参数

    /proc/sys/ 系统内核各种参数  如 /proc/sys/net/ipv4

    因为这些都是在内存中的,所以修改了不能保存,所以可以通过工具 sysctl工具进行修改内核参数,

    sysctl -a 查看系统所有内核参数

    /etc/sysctl.conf 配置文件管理的就是/proc/sys中的内核参数

    /etc/sysctl.conf 配置文件中 将需要的参数写进去就可以保存了,sysctl  -p重新生效

     1为开启 0为关闭

    SELinux

    getenforce   获取selinux状态,

          enforceing代表开启,

          permissive代表警告

          disabled代表关闭

    临时关闭或开启     setenforce 0    //关闭  ;  setenforce 1    //开启

    /etc/selinux/config

           SELINUX=enforcing 改为 SELINUX=disabled

    sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config

    要有多努力才能对得起奔波的脚步和身上的期望
  • 相关阅读:
    POJ 1015 Jury Compromise【DP】
    POJ 1661 Help Jimmy【DP】
    HDU 1074 Doing Homework【状态压缩DP】
    HDU 1024 Max Sum Plus Plus【DP,最大m子段和】
    占坑补题。。最近占的坑有点多。。。
    Codeforces 659F Polycarp and Hay【BFS】
    Codeforces 659E New Reform【DFS】
    Codeforces 659D Bicycle Race【计算几何】
    廖大python实战项目第四天
    廖大python实战项目第三天
  • 原文地址:https://www.cnblogs.com/hxfcodelife/p/12024815.html
Copyright © 2011-2022 走看看