• 引导过程与服务控制


    Linux开机启动原理完整过程要经历十步

    第一步开机自检(BIOS),就是主板检测

    第二步MBR引导,就是硬盘引导

    第三步GRUB菜单, 操作系统的启动菜单

    第四步 加载内核kernel,启动操作系统核心

    第五步 运行INIT进程,init进程初始化,执行kernel的任务(执行程序)

    第六步 读取etc/inittab配置文件(Linux开机时默认的启动模式)

    第七步 执行/etc/rc.d/rc.sysinit初始化脚本(/proc目录是临时存放内存数据用的目录)

    第八步 执行/etc/rc.d/rc 脚本(去某个目录执行文件)

    第九步 执行/etc/rc.d/rc.local 个人配置脚本

    第十步 启动mingetty 进程(启动个人进程)

    GPUB菜单   看机启动时按esc

     

    可以干扰默认启动模式。e 2 e 空格 3 回车 再按b 控制开机引导方式

    改一下这个数字保存退出重启以后默认进入我们想要进的模式                                                                

    pstree以树的形式显示进程

    [root@wangna ~]# pstree

    init─┬─crond

         ├─login───bash

         ├─5*[mingetty]

         ├─rsyslogd───3*[{rsyslogd}]

         ├─sshd───sshd───bash───pstree

         └─udevd───2*[udevd]

    PID号是1

    init是主进程

    sshd是个socket进程

    什么叫做socket进程,我们管24小时不间断监听某个固定端口的进程,叫做socket进程。

    [root@wangna ~]# bash    在之前的进程生成一个子进程

    [root@wangna ~]# exit      

    exit

    Linux做事的整个原理:

    sshd这个进程是负责我们远程连接服务的进程,当我们xshell连接上Linux以后,sshd主进程会临时生成一个sshd子进程来接待我们所有发起的远程连接。sshd子进程,为了能够让我们以友好的方式进行远程操作,sshd子进程会生成一个叫做bash的界面进程。其实我们的命令模式所操作的界面就是bash这个界面。为了同一时间解析多个命令,bash有生成一个进程,直接就是命令,生成一个临时子进程,去帮我们做事,做完事自己就消失了。

    [root@wangna ~]# cd /proc

    [root@wangna proc]# ls

    1     11    134  20   297  392  72   cmdline    interrupts  kpageflags  net  sys       

    10    1103  14   21   3    4  750     cpuinfo  iomem  loadavg pagetypeinfo  sysrq-trigger

    1066  1104  140  22   30   41   8    crypto    ioports  locks   partitions    sysvipc

    1074  1105  141  23   31   42   9   devices    ipmi    mdstat   sched_debug   timer_list

    1082  1120  142  24  314   5  928   diskstats    irq     meminfo    schedstat     timer_stats

    1089  1122  15  25  315  580  945     dma      kallsyms    misc       scsi          tty

    1091  1166  16   26   32   588  990    driver     kcore   modules     self         uptime

    1093  1178  17   27   33   6    acpi    execdomains  keys    mounts     slabinfo    version

    1095  12    18   28   346  7  buddyinfo   fb     key-users   mpt    softirqs    vmallocinfo

    1097  13   19    29   38  702  bus    filesystems   kmsg    mtd    stat        vmstat

    1099  133   2    295  39  703  cgroups    fs    kpagecount  mtrr   swaps     zoneinfo

    [root@wangna proc]# which ps

    /bin/ps

    [root@wangna proc]# ps     直接显示进程

       PID TTY          TIME CMD

      1122 pts/0    00:00:00 bash

      1181 pts/0    00:00:00 ps

    [root@wangna proc]# ps -ef

    UID         PID   PPID  C STIME TTY          TIME CMD

    root          1      0  0 18:12 ?        00:00:00 /sbin/init

    root          2      0  0 18:12 ?        00:00:00 [kthreadd]

    root          3      2  0 18:12 ?        00:00:00 [migration/0]

    root          4      2  0 18:12 ?        00:00:00 [ksoftirqd/0]

    root          5      2  0 18:12 ?        00:00:00 [migration/0]

    postfix    1082   1066  0 18:12 ?        00:00:00 qmgr -l -t fifo -u

    /proc/既有目录又有文件,但是我们发现好多目录的名字都是数字,那么这个数字目录到底是什么呢?是进程

    如果只把眼光站在运维的角度看问题,那么你只能看到进程这个东西。

    通常来说,站在运维的立场,进程就是程序。

    但是,假如我们把眼光看的更深一些,其实进程里还有许多叫做线程的东西,然后真正干活的不是进程,而是线程。

    如果面试时面试官问你,进程是什么?你说进程就是程序,也可以。

    但如果面试的是开发。那么你一定要说,进程什么都不是,它只是一个目录,存放资源的目录,这些资源是提供给线程进行调用的资源,真正干活的是线程,因此,线程才是进程。

    [root@wangna ~]# cd /etc/rc3.d  

    [root@wangna rc3.d]# ls

    K10saslauthd    K89rdisc      S08ip6tables   S12rsyslog        S25netfs     S80postfix

    K50netconsole   K92iptables   S10network    S15mdmonitor    S26udev-post  S90crond

    K87restorecond  S02lvm2-monitor  S11auditd  S25blk-availability  S55sshd       S99local

    [root@wangna rc3.d]# chkconfig 查询所有开机启动

    auditd          0:off 1:off 2:on 3:on 4:on 5:on 6:off

    blk-availability 0:off 1:on 2:on 3:on 4:on 5:on 6:off

    crond           0:off 1:off 2:on 3:on 4:on 5:on 6:off

    ip6tables       0:off 1:off 2:on 3:on 4:on 5:on 6:off

    iptables        0:off 1:off 2:off 3:off 4:off 5:off 6:off

    lvm2-monitor    0:off 1:on 2:on 3:on 4:on 5:on 6:off

    mdmonitor       0:off 1:off 2:on 3:on 4:on 5:on 6:off

    netconsole      0:off 1:off 2:off 3:off 4:off 5:off 6:off

    netfs           0:off 1:off 2:off 3:on 4:on 5:on 6:off

    network         0:off 1:off 2:on 3:on 4:on 5:on 6:off

    postfix         0:off 1:off 2:on 3:on 4:on 5:on 6:off

    rdisc           0:off 1:off 2:off 3:off 4:off 5:off 6:off

    restorecond     0:off 1:off 2:off 3:off 4:off 5:off 6:off

    rsyslog         0:off 1:off 2:on 3:on 4:on 5:on 6:off

    saslauthd       0:off 1:off 2:off 3:off 4:off 5:off 6:off

    sshd            0:off 1:off 2:on 3:on 4:on 5:on 6:off

    udev-post       0:off 1:on 2:on 3:on 4:on 5:on 6:off

    [root@wangna rc3.d]# chkconfig | grep "3:on"

    auditd          0:off 1:off 2:on 3:on 4:on 5:on 6:off

    blk-availability     0:off 1:on 2:on 3:on 4:on 5:on 6:off

    crond           0:off 1:off 2:on 3:on 4:on 5:on 6:off

    ip6tables       0:off 1:off 2:on 3:on 4:on 5:on 6:off

    lvm2-monitor    0:off 1:on 2:on 3:on 4:on 5:on 6:off

    mdmonitor       0:off 1:off 2:on 3:on 4:on 5:on 6:off

    netfs           0:off 1:off 2:off 3:on 4:on 5:on 6:off

    network         0:off 1:off 2:on 3:on 4:on 5:on 6:off

    postfix         0:off 1:off 2:on 3:on 4:on 5:on 6:off

    rsyslog         0:off 1:off 2:on 3:on 4:on 5:on 6:off

    sshd            0:off 1:off 2:on 3:on 4:on 5:on 6:off

    udev-post       0:off 1:on 2:on 3:on 4:on 5:on 6:off

    [root@wangna rc3.d]# chkconfig | grep postfix

    postfix         0:off 1:off 2:on 3:off 4:on 5:on 6:off

    [root@wangna rc3.d]# ls

    K10saslauthd K80postfix K89rdisc S02lvm2-monitor S10network S12rsyslog    S25blk-availability  S26udev-post  S90crond

    K50netconsole  K87restorecond  K92iptables  S08ip6tables     S11auditd   S15mdmonitor  S25netfs             S55sshd       S99local

    [root@wangna rc3.d]#  mv K80postfix S80postfix    K80改为S80S是开

    [root@wangna rc3.d]# chkconfig | grep postfix

    postfix         0:off 1:off 2:on 3:on 4:on 5:on 6:off

    [root@wangna rc3.d]# ls

    K10saslauthd   K87restorecond  K92iptables      S08ip6tables  S11auditd   S15mdmonitor         S25netfs      S55sshd     S90crond

    K50netconsole  K89rdisc        S02lvm2-monitor  S10network    S12rsyslog  S25blk-availability  S26udev-post  S80postfix  S99local

    [root@wangna ~]# chkconfig --list postfix 查看单一的服务

    [root@wangna ~]# chkconfig postfix on    指定在345模式下开启

    [root@wangna ~]# chkconfig postfix off    指定在345模式下关闭

    [root@wangna ~]# chkconfig --level 3 postfix on 指让在3模式下开始

    Service服务名start|stop|restart(强制关闭在重启)|reload(平滑重启)|status(看状态)

    虽然我们经常用这个方式来控制服务的当前启动状态,但是,假如我们忘记了postfix或者其他服务的名字,会发现这种方式不能tab

    那么,我们建议利用一个路径 /etc/init.d/ 来控制服务

    [root@wangna ~]# service postfix status   看一下postfix的状态

    [root@wangna ~]# service postfix stop    postfix服务关闭了

    [root@wangna ~]# service postfix start    postfix服务开启

    当我们的启动模式是3模式,那么Linux进入/etc/rc3.d/目录下,就会执行里面所有有以S打头的脚本(那么依靠这个方式完成的开机服务自启动)。所以,chkconfig这个命令所查看的内容,其实是即时生成的。然而并不是保存于某个文件里。因此,我们是无法对chkconfig的启动项做备份的。因此,在运维工作中,我们并不建议以chkconfig的方式来管理Linux操作系统的开机自启动项,因为运维需要安全,安全就要备份。/etc/fstab开机自动挂载,我们也不推荐的。推荐在/etc/rc.local,其实,我们也可以通过命令的方式去启动服务。如果/etc/rc.local这个脚本每次开机都先启动的话,里面的命令也会被先执行,其实也就是开机自启动。

    运维规则就是有理由即可。

     命令runlevel查看系统当前启动模式

    ***命令dd 重要命令(测磁盘读写速度), 工作中运维通过dd命令检测磁盘读写速度。

    工作中常使

    [root@wangna ~]# dd if=/dev/sda of=/backup/sda.mbr.bak bs=512 count=1

    /dev/sda系统盘开始抽前512字节的数据,输出到/backup/sda.mbr.bask,抽一次备份

    [root@wangna ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1

    ***从无限数据流文件取东西输出到/dev/sda里,输出前512字节 输出一次,把前512覆盖了,系统就启动不起来了,很难恢复数据

    Linux操作系统里有两个特殊的文件,/dev/null/dev/zero

    /dev/null 我们称作黑洞文件,不论什么文件内容被重定向到了这个文件里,内容就都消失了。也叫垃圾箱文件。

    /dev/zero 我们称为无限数据流文件,不论你要从文件里取多大的数据,都能取得出来,然而取出的数据没有任何内容显示,就是纯粹的占大小。

  • 相关阅读:
    JavaScript(16):横版菜单栏
    JavaScript(15):表格行之增删改
    JavaScript(14):实现jQuery的click绑定及链式编程
    c++ -- 左值和右值
    c++--模板与泛型编程
    python--导入其他文件夹下的模块(.py文件)
    python--pickle序列化(持久化)
    python--matplotlib显示中文问题(四种方法)
    machine learning--L1 ,L2 norm
    python--'__main__'的作用
  • 原文地址:https://www.cnblogs.com/wangna123/p/9890297.html
Copyright © 2020-2023  润新知