Linux進程查看及管理(2)

Linux進程查看及管理(2)

CentOS5和6的啟動流程:
Liunx中的啟動:kernel和rootfs(根文件系統)
kernel:進程管理,內存管理,網絡管理功能,驅動程序,文件系統,安全功能(權限模型),
rootfs:glibc(lib,lib64)

庫:函數集合,function(功能模塊)有其調用接口(頭文件是對函數功能或調用參數的功能進行描述)沒有直接入口-->需要進行調用:
過程調用:procedure:沒有返回值
函數調用:function:有返回值

程序:
完整系統概念:kernel+庫+程序

內核設計流派

單內核設計:把所有功能集成于同一個程序,中央集權運作,統一進行使用,如果出現問題導致系統崩潰;效率高!

微內核設計:每一個功能都是一個獨立的子系統:使用統一調用完成功能;聯邦式運作!效率低,風險低;實現線程模型;

Liunx內核特點:
    支持模塊化:.ko
    支持模塊化的動態裝載和卸載;
    組成部分:核心文件:(/boot/vmlinuz-VERSION-release)
                ramdisk:虛擬硬盤根文件系統;在安裝操作系統最后一步生成:
                    CentOS5:/boot/initrd-VERSION-release.img
                    CentOS6:/boot/initramfs-VERSION-release.img
             模塊文件:/lib/modules/VERSION-release

    [root@wanghongkai boot]# file /boot/vmlinuz-2.6.32-358.el6.x86_64 
    /boot/vmlinuz-2.6.32-358.el6.x86_64: Linux kernel x86 boot executable bzImage, version 2.6.32-358.el6.x86_64 (mockbuil, RO-rootFS, swap_dev 0x3, Normal VGA

內核模塊與內核版本號要嚴格匹配:
[root@wanghongkai tmp]# cd /lib/modules/
[root@wanghongkai modules]# ls
2.6.32-358.el6.x86_64  2.6.32-642.3.1.el6.x86_64

真正的內核文件都在:
[root@wanghongkai 2.6.32-642.3.1.el6.x86_64]# cd /lib/modules/2.6.32-358.el6.x86_64/kernel/
[root@wanghongkai kernel]# ls
arch  crypto  drivers  fs  kernel  lib  mm  net  sound

CentOS系統啟動流程:

POST:加電自檢:由ROM芯片上的CMOS程序決定的
    BIOS:基本輸入輸出系統:Basic Input and Output System
BOOT Sequence:必須有引導加載器:bootloader
        Liunx:LILO:LInux LOaer
               GRUB:GRand Unifrom Bootloader
            GRUB 0.X :GRUB legacy-->CentOS7之前
                                                    GRUB 1.X :GRUB2-->CentOS7
        功能:提供一個菜單,允許用戶選擇要啟動系統或不同的內核版本,把用戶指定的內核轉載進內存空間中;-->解壓,展開-->將控制權轉交給內核;
    CentOS5.6[root@wanghongkai kernel]# rpm -q grub
    grub-0.97-94.el6_7.1.x86_64

    按次序查找各引導設備,第一個有引導程序的設備即為本次啟動用戶設備;

MBR:446-->bootloader,64-->fat,2-->55AA
GRUB:必須要識別分區上文件系統!
    bootloader:1st stage
    disk:2nd stage  -->必須要磁盤分區:
[root@wanghongkai ~]# ls /boot/grub/
device.map     grub.conf         minix_stage1_5     stage2
e2fs_stage1_5  iso9660_stage1_5  reiserfs_stage1_5  ufs2_stage1_5
fat_stage1_5   jfs_stage1_5      splash.xpm.gz      vstafs_stage1_5
ffs_stage1_5   menu.lst          stage1             xfs_stage1_5

kernel:需要自解壓或grub解壓
    第一次加載根-->只讀方式加載;
    自身初始化:
        探測可識別到的所有硬件設備:
        加載硬件驅動程序:(有可能會借助于ramdisk加載驅動)
        以只讀方式掛載根文件系統:
        運行用戶空間的第一個應用程序:/sbin/init
        init程序類型:
            SysV:init,CentOS 5
                配置文件:/etc/inittab

            Upstart:接近于并行啟動:init
                配置文件:/etc/inittab,/etc/init/*.conf-->upstart的配置文件;

            Systemd:systemd,CentOS 7由sysctl來啟動服務:
                配置文件:/usr/lib/systemd/system,/etc/systemd/system

        ramdisk:
            內核中特性之一:使用緩沖和緩存來對磁盤上的文件訪問;
                ramdisk-->ramfs
            CentOS 5 :initrd,工具程序:mkinitrd(腳本)
            CentOS 6 :initramfs,工具程序:mkinitrd,dracut

總結系統初始化:

POST-->BootSequence(BIOS)-->Bootloader(MBR)-->kernel(ramdisk)-->已只讀方式(根文件系統)rootfs-->init

CentOS5:運行級別:為了系統的運行或維護等應用目的而設定:
    級別:0-6,7個級別
    0:關機,1:單用戶模式-->single,2:多用戶模式(啟動網絡功能),3:多用戶模式,正常模式:(文本界面);4:預留級別,5:多用戶模式(圖形界面);6:重啟系統;
默認級別:3,5都是可以的
級別切換:init #
查看級別:runlevel,who -r
[root@wanghongkai ~]# who -r
     run-level 5  2016-07-31 04:26
[root@wanghongkai ~]# runlevel
N 5-->N代表為0

每個級別對應的配置文件:
    每一行定義一種action以及與之對應的process
[root@wanghongkai ~]# cat /etc/inittab 
# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
# 
****id:5:initdefault:-->設定默認運行級別!
-->id 用戶名,5,運行級別:
    wait:切換至次級別運行一次:
    respwan:此process終止,就重新啟動之:
    initdefault:設定默認運行級別:process省略
sysinit:完成系統初始化:設定系統初始化方式,此處一搬為指定/etc/rc.d/rc.sysinit:完成系統初始化:設定系統初始化方式,此處一搬為指定/etc/rc.d/sysinit:完成系統初始化:設定系統初始化方式,此處一搬為指定/etc/rc

chkconfig命令:顯示在每個級別下每個服務被傳遞了stop還是start參數
[root@wanghongkai rc5.d]# chkconfig --list
NetworkManager  0:off   1:off   2:on    3:on    4:on    5:on    6:off
abrt-ccpp       0:off   1:off   2:off   3:on    4:off   5:on    6:off
abrtd           0:off   1:off   2:off   3:on    4:off   5:on    6:off
acpid           0:off   1:off   2:on    3:on    4:on    5:on    6:off
atd             0:off   1:off   2:off   3:on    4:on    5:on    6:off
auditd          0:off   1:off   2:on    3:on    4:on    5:on    6:off
autofs          0:off   1:off   2:off   3:on    4:on    5:on    6:off
blk-availability    0:off   1:on    2:on    3:on    4:on    5:on    6:off
修改某個級別參數stop或start
chkconfig --level5 服務名 stop或start

[root@wanghongkai init.d]# cat NetworkManager 
#!/bin/sh
#
# NetworkManager:   NetworkManager daemon
#
****# chkconfig: - 23 84-->???依賴于chkconfig修改
# description:  This is a daemon for automatically switching network \
#               connections to the best available connection.
#
# processname: NetworkManager
# pidfile: /var/run/NetworkManager/NetworkManager.pid
#
****### BEGIN INIT INFO-->???依賴于Upstart
# Provides: network_manager $network
# Required-Start: messagebus
# Required-Stop: messagebus
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start and stop NetworkManager
# Description: NetworkManager is a tool for easily managing network connections
### END INIT INFO

添加:chkconfig --add name
    SysV的服務腳本放置于/etc/rc.d/init.d(/etc/init.d)
自定義創建啟動服務:
1:在/etc/init.d下創建服務以及名稱:
2:chkconfig --add name 將服務加入到自啟動項中:
3:使用chmod +x 給自定義服務執行權限;

注意:正常級別下,最后啟動一個服務S99local沒有鏈接至/etc/rc.d/init.d一個服務腳本,而是指向了/etc/rc.d/rc.local腳本;因此,不便或不需寫為服務腳本放置于/etc/rc.d/init.d/目錄,且又想開機時自動運行的命令,可直接放置于/etc/rc.d/rc.local文件中;



tty1:2345:respawn:/usr/sbin/mingetty tty1
tty2:2345:respawn:/usr/sbin/mingetty tty2
tty6:2345:respawn:/usr/sbin/mingetty tty6
mingetty會調用login程序

/etc/rc.d/rc.sysinit: 系統初始化腳本
    (1) 設置主機名;
    (2) 設置歡迎信息;
    (3) 激活udev和selinux; 
    (4) 掛載/etc/fstab文件中定義的文件系統;
    (5) 檢測根文件系統,并以讀寫方式重新掛載根文件系統;
    (6) 設置系統時鐘;
    (7) 激活swap設備;
    (8) 根據/etc/sysctl.conf文件設置內核參數;
    (9) 激活lvm及software raid設備;
    (10) 加載額外設備的驅動程序;
    (11) 清理操作;

總結:/sbin/init-->(/etc/inittab)-->設置默認運行級別-->運行系統初始化腳本,完成系統初始化-->關閉對應下需要關閉的服務,啟動需要啟動服務-->設置登錄終端;

CentOS6:
    init程序為:upstart 其配置文件;
        /etc/inittab,/etc/init/*.conf

注意:/etc/init/*.conf文件語法,遵循 upstart配置文件語法格式;

啟動系統時,設置其運行級別1;
    1:shutdown -r now

原創文章,作者:wostop,如若轉載,請注明出處:http://www.www58058.com/30175

(0)
wostopwostop
上一篇 2016-08-08 16:15
下一篇 2016-08-08 16:15

相關推薦

  • 系統管理之系統安裝及自動化安裝

    概述:     上篇我們討論了下關于Linux系統的啟動流程和grub相關的內容,本篇將介紹一下Linux的系統安裝相關的內容,具體分為:     1、系統安裝程序anaconda的介紹     2、kickstart文件的介紹 &nbsp…

    Linux干貨 2016-09-16
  • Linux基礎:計算機的組成及其功能

    1. 描述計算機的組成及其功能。
    2. 按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別。
    3. 描述Linux的哲學思想,按照自己的理解對其解釋性描述。
    4. 說明Linux系統上命令的使用格式;詳細介紹ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date等命令使用,配合相應實例闡述。
    5. 如何獲取幫助信息,描述man文檔章節劃分。
    6. 羅列發行版基礎目錄名稱命名法則及功用規定。

    2017-12-07
  • bash特性

    bash特性之一:命令別名      獲取當前用戶可用的別名的定義:  bash的特性之二:命令歷史      命令語法格式:      history [-c] [-d OFFSET] [n]&nb…

    Linux干貨 2016-11-06
  • 面授20-1班 0805課間練習與課后作業

    課間練習 第一階段 新學的命令文本命令cat tac rev more less head tail cut paste wc sort dif patch 1 、找出ifconfig 命令結果中本機的所有IPv4 地址 [root@IP70-CentOS7 ~]# >>ifconfig | tr&nbsp…

    Linux干貨 2016-08-07
  • 馬哥教育網絡班21期第六周作業

    詳細總結VIM編輯器的使用并完成以下練習題 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加# cp /etc/rc.d/rc.sysinit /tmp vim /tmp/rc.sysinit :%s/^[[:space:]]\+/#/…

    Linux干貨 2016-08-22
  • 元數據、修改時間戳、文件名通配、定義命令的別名、I/O重定向及管道

      文件的元數據 文件的數據分為兩類:一類為元數據,既屬性數據;一種就是數據本身:  數據是指普通文件中的實際數據  元數據指用來描述一個文件的特征的系統數據,諸如訪問權限、文件擁有者以及文件數據塊的分布信息(inode…)等等 那么如何查看文件的詳細信息? stat命令: 功能說明:    顯示inode內容命令用法:    stat…

    Linux干貨 2016-11-06
欧美性久久久久