Linux系统程序与进程管理

Linux系统启动流程与管理机制详解

目录

一,启动流程 

  (一) BIOS

(二)开机自检的流程

(三)    选择硬盘作为第一启动顺序

二,管理机制

三,运行级别

四,root密码修复

六、程序与进程操作


一,启动流程
 

  (一) BIOS


       (1) Basic Input Output System,存储硬件信息,是一段程序,存储在主板的CMOS芯片,由主板的电池供电
        (2)UEFI
       (3) 进入BIOS   不同品牌的主板进入方式不一致
       
        (4)系统引导方式
            硬盘引导
            网络引导    PXE装机      批量装机服务
            U盘引导            安装操作系统
   

(二)开机自检的流程


        1.power on开机
        2.POST开机自检,如果有问题会发出蜂鸣声,没有问题就加载bios程序
        3.bios是基本输入输出系统,通过BIOS加载引导程序
        4.boot启动顺序检查,启动第一启动顺序

(三)    选择硬盘作为第一启动顺序


        5.然后找到硬盘的第一个扇区,读取MBR主引导记录,MBR中有一个grub2引导程序,是用来启动Linux系统的
        6.加载/boot里文件系统里的驱动
        7.运行/boot里的内核文件vmlinuz、initramfs
        8.启动systemd进程
            系统的第一个进程,是所有其他进程的父进程
        9.启动对应的运行级别的里的服务,我们一般是启动multi-user多用户模式
        10.启动相应运行级别的的服务,比如/etc/rc.local以及/etc/fstab文件
        11.然后进入login登录,用户输入用户名和密码以后,Linux系统会自动进入/etc/passwd文件和/etc/shadow文件里验证用户名和密码是否正确
        12.验证成功之后,运行/etc/profile和 /etc/bashrc 全局配置(所有验证成功的用户都会加载),再运行用户家目录下的初始化文件, /.bash_profile、/.bashrc 局部配置(只有用户本身可以加载)


二,管理机制

(一)service
   (1) Linux6及之前老版本系统
    (2)语法        service 服务名称 服务操作类型
    (3)服务启停脚本存储目录        /etc/init.d/
(二)systemd
    Linux7及之后的新版本系统
    语法        systemctl   服务操作类型 服务名称
    服务启停脚本存储目录        /usr/lib/systemd/system


三,运行级别
 

0   系统关机级别,系统默认的运行级别不能设置为0,否则不能正常启动。
init 0 进行关机。poweroff.target
1   单用户模式级别。root 权限,用于系统维护 (或修复系统,或重置系统密码信息),禁止远程登录。
   runlevel0.target
2   多用户模式级别。该级别下没有NFS和网咯的支持。0multi-usertarget
3   完整的多用户文本模式级别。登录后进入到控制台命令行模式。multi-user.target0
4   多用户。  multi-user.target5
5   图形化模式级别。登录后进入图形GUI模式。graphical.target
6   系统重启级别。默认运行级别不能设置为6,否则系统不能正常启动。
init 6 系统会重启。     reboot.target
(一)运行级别存储文件
    /usr/lib/systemd/system
    runlevel0.target-> poweroff.target
    runlevel1.target-> rescue.target
    runlevel2.target-> multi-user.target
    runlevel3.target-> multi-user.target
    runlevel4.target-> multi-user.target
    runlevel5.target-> graphical.target
    runlevel6.target-> reboot.target
(二)操作命令
   (1) Runlevel 
        查看当前运行级别 及上一级
        数字1 数字2
        (数宁1位N表示没有上一级别,直接登录该运行级别
        Init 切换运行级别,上一级别将登出。
    (2)systemctl
        systemctl get-default           查看默认运行级别
        systemctl set-default   运行级别名称            查看默认运行级别


四,root密码修复

(1)启动系统后,在grup界面按e进入编辑模式
(2)Linux 16 的那一行,将 ro 改为 rw init=/sysroot/bin/sh
    
(3)Ctrl+x
(4)chroot    /sysroot
(5)修改root用户密码    passwd
    echo "密码" |passwd --stdin root
(6)touch /.autorelabel    自动识别label标签
    不创建密码修改不生效
(7)exit
(8)reboot

 

(二)grub引导故障

驱动(模块)操作:查看模块  lsmod;卸载模块  rmmod  模块名称;加载模块  insmod  模块的绝对路径。

故障模拟:mv /boot/grub2/grub.cfg /grubbackup ; reboot

修复(手动引导操作系统):

1.grub>ls,查看磁盘分区信息,找到boot分区

 2.grub>insmod xfs

 grub> set root=(hd0,msdos1)(----> 这个为你上一步中找到的boot分区)

 grub> linux16 /vmlinuz-xxxxx root=(hd0,msdos2)(/dev/mapper/centos-root)

 grub> initrd16 /initramfs-.xxxxx.img

grub> boot

3.将备份好的gurb文件拷贝到/boot/grub2/目录中。或者 在没有备份grub的情况下:grub2-mkconfig --output /boot/grub2/grub.cfg 重新生成grub

(三)磁盘资源耗尽

1.磁盘空间不足

解决办法:清理磁盘或者添加新磁盘

2.inode节点耗尽

解决办法:查看磁盘inode节点数量:df -i;删除无用文件

3.预防磁盘资源耗尽的最好办法

办法:进行磁盘配额

五、程序与进程的区别
程序:静态代码,存储在硬盘等介质中

进程:程序运行后在CPU及内存中运行的动态代码;父进程与子进程

六、程序与进程操作


(一)进程概述:进程是计算机系统中正在运行的程序的实例 。 它是操作系统对程序执行的基本单位 ,可以看作是程序在执行过程中的动态表现。 每个进程都有自己的内存空间、代码、数据和执行状态。 多个进程可以同时运行在计算机系统中。 从不同的角度,进程可以有不同的定义,比较典型的定义有: 1)进程是程序的一次执行过程。 2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动。 3)进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。

(二)进程查看命令

1.ps aux,静态显示正在内存中运行的进程信息

USER  PID  %CPU  %MEM  VSZ  RSS  TTY  STAT  STARTTIME  COMMAND(用户  进程号  CPU占比  内存占比  虚拟内存  固定内存占用     连接终端  状态  开始时间   进程运行的命令)

状态:

S:sleep休眠进程

s:表示有很多子进程,表示父进程

R:正在工作的进程

T:已经停止的进程

Z:僵尸进程,zombie,会占用系统资源,主要占用内存资源

2.ps -elf,属于当前登录的所有进程信息

F  S  UID  PID  PPID  C  PRI  NI  ADDR  SZ WCHAN  STIME  TTY  TIME  CMD(标识 状态 用户ID  进程ID  父进程ID CPU    优先权 优先权修正 内存位置 内存占比  -运行  开始时间 终端   占用CPU时间 命令)

3.pgrep ,进程筛选

选项:

-o:显示找到的最小进程号

-n:显示找到的最大进程号

-l:显示进程名

-p:指定父进程

-g:指定进程组

-t:指定开启的终端

-u:指定进程有效用户

4.pstree 显示进程树

-a:显示完整信息

-u:显示UID

-p:显示PID号

5.top,动态显示进程信息

选项:

P:根据CPU占用情况显示

M:根据内存占用显示

N:根据启动时间

q:退出

t:切换进程和cpu状态

i:忽略显示僵尸进程

k:终止一个进程

空格:强制更新

举例说明:top - 19:40:26 up  2:34,  5 users,  load average: 0.42, 0.22, 0.16

Tasks: 209 total,   2 running, 207 sleeping,   0 stopped,   0 zombie

%Cpu(s): 14.0 us,  3.8 sy,  0.0 ni, 82.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

KiB Mem :   997956 total,    73544 free,   732792 used,   191620 buff/cache

KiB Swap:  2097148 total,  1904892 free,   192256 used.    71360 avail Mem

第一行:系统当前时间;已经运行了16天21小时,1个用户登录;系统1/5/15分钟之内的平均负载

第二行:Tasks(总进程数是145);2个正运行的进程;143个睡眠的进程;0个停止;0个僵尸进程

第三行:CPU(用户控件占用CPU的百分比是99.8%),内核占用CPU0.1%;0.0%ni[用户进程空间内改变过优先级的进程占用CPU百分比];0.2%id[空闲CPU百分比], 0.0%wa[等待输入输出的CPU时间百分比];

第四行:Mem(内存)总大小是4G;2.4G被使用;1.6G空闲;158M作为内核缓存(buffer:写入缓冲区);

第五行:Swap(交换分区)总大小5G;用了56k;其余闲置;2G作为读取缓存(cached:CPU刚使用的数据);

(三)终止进程

Ctrl+C  #终止前台进程

kill   进程号   #终止后台进程;-u指定用户

kill `pgrep firefox`  不关心进程号直接杀死firefox

kill  -9   进程号   #强制杀死

pkill    名字       #按照进程名杀死进程

killall  httpd     #使用进程名杀死一组进程;-l不区分大小写;-u指定杀死用户的进程

(四)前台进程与后台进程

前台进程:在终端中直接运行的程序,影响当前终端的使用

后台进程:在后端运行的程序,不影响当前终端使用

前台进程切换成后台进程:firefox &  ( [1]+  运行中    firefox &  jobNumber  状态    进程名  )

查看切换到后台的进程信息:jobs [-l  显示PID]

后台进程调到前台进程:fg jobNumber

暂停前台进程:Ctrl+z

将暂停进程直接调到后台执行:bg jobNumber

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值