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
下一篇 2016-08-08

相關推薦

  • corosync+pacemaker+drbd+mysql配置安裝詳解

    一,  基本環境介紹及基本環境配置 節點1: node1.hulala.com      192.168.1.35     centos6.5_64    添加8G新硬盤 節點2: node1.hulala.com      192.168.1.36…

    Linux干貨 2016-05-08
  • iptables基礎實戰練習

    (1) 放行ssh (端口:22) 1 iptables -A INPUT -d 192.168.42.153 -p tcp –dport 22 -j ACCEPT 2 iptables -A OUTPUT -s 192.168.42.153 -p tcp –sport 22 -j ACCEPT (2)修改默認規則鏈(關閉所有端口) 1 iptables…

    2017-09-10
  • LVM2

    LVM2:         LVM: Logical Volume Manger, Version:2        dm: device mapper, 將一個或多個底層塊設備組織 成一個邏輯設備的模塊;           &…

    Linux干貨 2016-12-30
  • 設計模式概論

    1. 設計模式        設計模式(Design pattern)是一套被反復使用、多數人知曉的、經過分類編目的、代碼設計經驗的總結。使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。 毫無疑問,設計模式于己于他人于系統都是多贏的,設計模式使代碼編制真正工程化,設計模式是軟件工程的基石,如同大廈…

    Linux干貨 2015-06-18
  • linux系統基礎目錄結構及功能說明

    linux系統基礎目錄結構及功能說明 [root@localhost /]# ls bin boot dev etc home host lib lib64 media mnt opt proc root run sbin srv sys tmp usr var /bin:所有用戶可用的基本命令程序文件;/sbin:供系統管理使用的工具程序;/boot:引導…

    Linux干貨 2018-03-04
  • grep是個什么鬼

    正則表達式   一個正則表達式是一個描述了一個字符串集合的模式。正則表達式的構造類似于算術表達式,使用各種各樣的操作符來將更小的表達式連在一起。 Grep能理解兩種不同版本的正則表達式語法:“basic”和“extended”。在GNU grep中,兩種語法可以實現的功能是沒有區別的。在其他實現中,基本(basic)正則表達式表達能力要弱一點。下面…

    Linux干貨 2017-04-17
欧美性久久久久