zoukankan      html  css  js  c++  java
  • Linux入门——启动和关闭

    Linux入门——启动和关闭

    摘要:本文主要学习了Linux的启动和关闭。

    配置文件

    说明

    在CentOS 7之前可以通过修改inittab配置文件来修改开机启动模式。

    CentOS 7由于使用systemd而不是init,所以不能通过修改inittab配置文件来修改开机启动模式,而是通过命令行。

    文件格式

    在Linux系统启动时,会启动init进程,init进程会根据/etc/inittab这个文件,在不同的运行级别启动相应的进程或执行相应的操作。

    在/etc/inittab配置文件中定义的登记项都是以“:”隔开的四个段,即:

    1 id:runlevels:action:process

    登记项

    id

    每个登记项的标识符,用于唯一标识每个登记项,不能重复。

    runlevels

    系统的运行级别,表示process的action要在哪个级别下运行,该段中可以定义多个运行级别,各级别之间直接写不用分隔符,如果为空,表示在所有的运行级别运行。

    Linux的运行级别有:

    1 0:表示关机,系统默认级别不能设为0,否则不能正常启动。
    2 1:表示单用户模式,在这个模式中,用户登录不需要密码,禁止远程登录。
    3 2:表示多用户模式,NFS服务不开启,没有网络服务。
    4 3:表示完全的多用户模式,有NFS服务,登录进入命令行模式。
    5 4:这个模式保留未用。
    6 5:表示图形用户模式,登录进入图形界面。
    7 6:表示重启系统,系统默认级别不能设为6,否则不能正常启动。

    最常用到的是3和5。

    action

    表示对应登记项的process在一定条件下所要执行的动作。

    具体动作有:

     1 respawn:当process终止后马上启动一个新的process。
     2 wait:当进入指定的runlevels后process才会启动一次,并且到离开这个runlevels终止。
     3 initdefault:设定默认的运行级别,即我们开机之后默认进入的运行级别,不能是0和6,你懂的。
     4 sysinit:系统初始化,只有系统开机或重新启动的时候,这个process才会被执行一次。
     5 powerwait:当init接收到电源失败信号的时候执行相应的process,并且如果init有进程在运行,会等待这个进程完成之后,再执行相应的process。
     6 powerfail:当init接收到电源失败信号的时候执行相应的process,并且如果init有进程在运行,不会等待这个进程完成,它会直接执行相应的process。
     7 powerokwait:电源已经故障,但是在等待执行对应操作的时候突然来电了就执行对应的process。
     8 powerfailnow:当电源故障并且init被通知UPS电源已经快耗尽执行相对应的process。
     9 ctrlaltdel:当用户按下ctrl+alt+del这个组合键的时候执行对应的process。
    10 boot:只有在引导过程中,才执行该进程,但不等待该进程的结束,当该进程死亡时,也不重新启动该进程。
    11 bootwait:只有在引导过程中,才执行该进程,并等待进程的结束,当该进程死亡时,也不重新启动该进程。
    12 off:如果process正在运行,那么就发出一个警告信号,等待20秒后,再通过杀死信号强行终止该process。如果process并不存在那么就忽略该登记项。
    13 once:启动相应的进程,但不等待该进程结束便继续处理/etc/inittab文件中的下一个登记项,当该进程死亡时,init也不重新启动该进程。

    process

    表示启动哪个程序或脚本或执行哪个命令等。

    查看

    CentOS 7之前的配置文件:

     1 [root@localhost ~]#
     2 #
     3 # inittab This file describes how the INIT process should set up
     4 # the system in a certain run-level.
     5 #
     6 # Author: Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
     7 # Modified for RHS Linux by Marc Ewing and Donnie Barnes
     8 #
     9 
    10 # Default runlevel. The runlevels used by RHS are:
    11 # 0 - halt (Do NOT set initdefault to this)
    12 # 1 - Single user mode
    13 # 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
    14 # 3 - Full multiuser mode
    15 # 4 - unused
    16 # 5 - X11
    17 # 6 - reboot (Do NOT set initdefault to this)
    18 # 
    19 id:3:initdefault:
    20 
    21 # System initialization.
    22 si::sysinit:/etc/rc.d/rc.sysinit
    23 ...
    24 [root@localhost ~]#

    CentOS 7的配置文件:

     1 [root@localhost ~]# cat /etc/inittab
     2 # inittab is no longer used when using systemd.
     3 #
     4 # ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
     5 #
     6 # Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
     7 #
     8 # systemd uses 'targets' instead of runlevels. By default, there are two main targets:
     9 #
    10 # multi-user.target: analogous to runlevel 3
    11 # graphical.target: analogous to runlevel 5
    12 #
    13 # To view current default target, run:
    14 # systemctl get-default
    15 #
    16 # To set a default target, run:
    17 # systemctl set-default TARGET.target
    18 #
    19 [root@localhost ~]#

    命令行

    在CentOS 7中,可以使用命令行来设置运行级别。

    查看当前运行级别:

    1 systemctl get-default

    设置当前运行级别为3,开机为命令行模式:

    1 systemctl set-default multi-user.target

    设置当前运行级别为5,开机为图形界面:

    1 systemctl set-default graphical.target

    启动过程

    加电自检

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

    内核引导

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

    运行init

    init进程是系统所有进程的起点,你可以把它比拟成系统所有进程的老祖宗,没有这个进程,系统中任何进程都不会启动。

    init程序首先是需要读取配置文件/etc/inittab。

    启动进程

    init进程会根据配置文件的运行级别启动相应的进程。

    系统初始化

    在init的配置文件中调用执行了/etc/rc.d/rc.sysinit,而rc.sysinit是一个脚本,它主要是完成一些系统初始化的工作,rc.sysinit是每一个运行级别都要首先运行的重要脚本。

    它主要完成的工作有:激活交换分区,检查磁盘,加载硬件模块以及其它一些需要优先执行任务。

    建立终端

    rc执行完毕后,返回init。这时基本系统环境已经设置好了,各种守护进程也已经启动了。

    init接下来会打开6个终端,以便用户登录系统。

    用户登录系统

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

    (1)命令行登录

    (2)ssh登录

    (3)图形界面登录

    关闭系统

    说明

    在Linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。

    正确的关机流程为:

    1 sync > shutdown > reboot > halt

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

    命令

    sync

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

    同步:

    1 [root@localhost ~]# sync

    shutdown

    关机指令。

    立马关机:

    1 [root@localhost ~]# shutdown –h now

    在今天20:25关机:

    1 [root@localhost ~]# shutdown –h 20:25

    十分钟后关机:

    1 [root@localhost ~]# shutdown –h +10

    立马重启:

    1 [root@localhost ~]# shutdown –r now

    十分钟后重启:

    1 [root@localhost ~]# shutdown –r +10

    reboot

    重启,等同于“shutdown –r now”。

    重启:

    1 [root@localhost ~]# reboot

    poweroff

    关闭系统,等同于“shutdown –h now”。

    关闭:

    1 [root@localhost ~]# poweroff

    halt

    关闭系统,等同于“shutdown –h now”和“poweroff”

    关闭:

    1 [root@localhost ~]# halt

    init

    运行指定进程。

    关闭:

    1 [root@localhost ~]# init 0

    重启:

    1 [root@localhost ~]# init 6
  • 相关阅读:
    运行缓慢的查询语句
    EditPlus 替换所有文件夹下的文件包含子文件夹
    PRM–pageLoaded事件
    DataSet接收XML数据并按条件搜索
    复杂数据类型使用基础
    WebService客户端调用错误处理
    仿GOOGLE个性首页可移动图层效果
    asp.net 2.0中md5密码加密
    页面上的可鼠标移动内嵌页面层,并有关闭按钮,背景不可点击
    最好的。NET反编译工具
  • 原文地址:https://www.cnblogs.com/shamao/p/13403208.html
Copyright © 2011-2022 走看看