1、系统启动流程

  • 启动计算机的硬件(BIOS)——读取时间——选择对应的启动模式(USB、HDD、EFI)
  • 如果是Linux系统,会去找/boot目录,引导这个系统启动
  • 计算机系统开始启动,读取初始化配置文件
  • /etc/inittab启动时控制着计算机的运行级别runlevel | 0 | halt(关机) | | —- | —- | | 1 | Single user mode(单用户模式) | | 2 | Multiuser,without NFS(多用户模式,但是无网络状态)FS:FileSystem | | 3 | Full multiuser mode(多用户完整版模式) | | 4 | unused(保留模式) | | 5 | X11(用户界面模式) | | 6 | reboot(重启模式) |

  • 开始默认引导公共的组件或者服务:/etc/rc.d/rc.sysinit

  • 开始加载对应runlevel的服务:/etc/rc3.d/
    • K:关机时需要关闭的服务
    • S:启动时需要开启的服务
    • 数字代表了开启或者关闭的顺序
    • 所有的文件都是软链接,链接的地址为/etc/init.d
  • 当启动完毕,所有的服务也被加载完成

    系统服务

  • 我们可以使用chkconfig命令查看当前虚拟机的服务

  • 通过查看可以得知不同的级别对应到每一个服务确定本次开机自动启动
  • 开机结束后,我们需要使用service (CentOS6)、systemctl(CentOS7)命令控制服务的开启或者关闭

    2、开机自启动服务

  • rc.local

    • 首先创建脚本存放的文件夹
      • mkdir -p /usr/local/scripts
    • 在文件夹中创建脚本文件

      • vim hello.sh

        1. #! /bin/bash
        2. #开机自启动同步时间
        3. yum info ntp && ntpdate cn.ntp.org.cn
      • 给与执行权限

    • 去/etc/rc.d/rc/local文件中添加脚本的绝对路径
      • 给与rc.local执行权限
  • chkconfig

    • 创建开机自启动脚本文件
    • vim ntpdate.sh

      1. #! /bin/bash
      2. #chkconfig:2345 88 99
      3. #description:auto_run
      4. #开机自启动同步时间
      5. yum info ntp && ntpdate cn.ntp.org.cn
    • 给其设置执行权限

      • chmod u+x ntpdte.sh
    • 将脚本拷贝到/etc/init.d目录下
      • cp ntpdate.sh /etc/init.d
    • 添加到服务
      • chkconfig —add /etc/init.d/ntpdate.sh
    • 重启服务器
      • reboot

        3、定时任务

        crond任务调度

        crond的概念和crontab是不可分割的。crontab是一个命令,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行,而crond正是它的守护进程。
  1. crontab命令——进行定时任务的设置

任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类:
①系统工作:有些重要的工作必须周而复始地进行,如病毒扫描等。
②个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。
crontab [选项]
常用选项:
-e:编辑crontab定时任务
-l:查询crontab任务
-r:删除当前用户所有的crontab任务
crontab -r:终止任务调度
crontab -l:列出当前有哪些任务调度
service crond restart:重启任务调度image.png

crontab时间规则
image.png
image.png

at定时任务

  1. at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行。
  2. 默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。
  3. at命令是一次性定时计划任务,执行完一个任务后不再执行此任务。
  4. 在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令来查看。ps -ef | grep atd #可以检测atd是运行;

at命令格式:at [选项] [时间]
Ctrl + D结束at命令的输入,需要输入两次
atq命令查看系统中没有执行的工作任务
atrm [编号]:删除相应任务队列编号的任务
image.png
image.png