Linux系统程序与进程管理

目录

一、启动流程

二、管理机制

三、运行级别

四、故障处理

五、程序与进程的区别

六、程序与进程操作

总结


一、启动流程

(一)开机自检的流程

1.power on开机

2.POST开机自检,如果有问题会发出蜂鸣声,没有问题就加载bios程序  (   BIOS
 Basic Input Output System,存储硬件信息,是一段程序,存储在主板的CMOS芯片,由主板的电池供电)  

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 局部配置(只有用户本身可以加载)

二、管理机制

1.service

是适用 Linux6及之前老版本系统
语法:service 服务名称 服务操作类型
服务启停脚本存储目录    /etc/init.d/

2. 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

(三)操作命令

runlevel :查看当前运行级别 及上一级

数字1 数字2(上一运行级别,当前运行级别 数字1位N表示没有上一级别,直接登录该运行级别)

init 运行级别的数字:切换运行级别,上一级别将登出。

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  root或echo "密码" |passwd --stdin roottouch /.autorelabel都可以自动6.添加touch /.autorelabel(自动识别label标签,不创建密码修改不生效)

7.输入exit和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


总结

本文仅仅简单介绍了Linux系统程序与进程管理的使用。

  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值