首页 > 系统相关 >Linux学习笔记(第十篇)进程管理

Linux学习笔记(第十篇)进程管理

时间:2022-11-01 22:04:33浏览次数:39  
标签:优先级 第十篇 笔记 命令 Linux 进程 CPU


​​Linux学习笔记(第零篇)计算机基础​​Linux学习笔记(第零篇)Linux文件系统及Shell
Linux学习笔记(第一篇)零散命令
Linux学习笔记(第二篇)目录操作命令
Linux学习笔记(第三篇)文件操作命令
Linux学习笔记(第四篇)文件内容操作命令+正则表达式+重定向和管道
Linux学习笔记(第五篇)归档及压缩命令
Linux学习笔记(第六篇)Vi编辑器
Linux学习笔记(第七篇)用户和组管理
Linux学习笔记(第八篇)磁盘与文件系统管理
Linux学习笔记(第九篇)逻辑卷管理(LVM)
Linux学习笔记(第十篇)进程管理
Linux学习笔记(第十一篇)服务管理
Linux学习笔记(第十二篇)网络基础
Linux学习笔记(第十三篇)通信管理
Linux学习笔记(第十四篇)管理常用网络服务
Linux学习笔记(第十五篇)常用网络服务器配置

Part10–进程管理


1.系统资源管理的三个主要方面:

  • CPU资源(计算)的管理
  • 内存资源的管理
  • 磁盘资源的管理

2.进程:

  • 进程管理与CPU资源管理及内存资源管理密切相关。
  • Linux系统任务调度管理的基本单元。
  • 可执行代码+相关数据+占用的系统(计算与存储)资源,也可以理解为运行中的程序。

3.程序与进程的关系:

  • 程序:保存在硬盘、光盘等介质中的可执行代码和数据; 是静态保存的代码。
  • 进程:在CPU及内存中运行的程序代码;是动态执行的代码; 每个进程可以创建一个或多个进程(父、子进程)。

4.监控CPU与内存的操作:

  • uptime命令:得到从开机运行开始系统负载的大致统计数据。
  • pstree工具:以树型显示各进程间的关系。
  • ps命令:报告当前进程执行的统计信息。
  • top工具:查看动态的进程排名信息。

5.uptime命令:

  • 得到从开机运行开始,系统负载的大致统计数据。
  • 例如:$ uptime
    13:48:57 up 80 days, 23:19, 3 users, load average: 1.20, 1.06, 1.01
  • uptime命令报告当前时间、系统已经启动的时间以及有关任务负载的三个平均数:最后一分钟平均活动进程数;最后五分钟平均活动进程数;最后15分钟平均活动进程数。

6.pstree工具:

  • 以树型结构显示各进程间的关系。
  • pstree -aup:-a表示列出进程对应的完整命令,-u表示列出进程对应的用户名,-p表示列出进程的PID号。

7.ps命令:

  • 报告当前进程执行的统计信息(状态,内存,CPU的使用情况 ),显示瞬间进程的状态,并不动态连续;查看静态的进程统计信息。
  • 常用的选项:ps aux或ps -elf
  • Linux学习笔记(第十篇)进程管理_计划任务

  • ps输出域的含义:
    VSZ:使用的虚拟内存
    RSS:使用的物理内存
    STAT:当前进程的状态
    TIME:使用的总的CPU时间
    COMMAND:被执行的命令
  • 状态字:

Linux学习笔记(第十篇)进程管理_linux_02

8.top工具:

  • 查看动态的进程排名信息
  • Linux学习笔记(第十篇)进程管理_计划任务_03

  • top反馈的信息
    第一行:系统运行时间;
    第二行:总进程数;
    第三行:当前CPU使用量;
    (1)us:用户空间占用CPU百分比
    (2)sy:内核空间占用CPU百分比
    (3) ni:用户进程空间内改变过优先级进程占用CPU百分比
    (4)id:空闲CPU百分比
    (5)wa:等待输入输出的CPU时间百分比
    第四行:当前内存使用量;
    第五行:当前交换空间使用量;
    第六行:活跃的进程信息(类似ps命令);
    (1)PID:进程号
    (2) USER:用户名
    (3) PR:进程优先级,越小越早被执行
    (4) NI:进程的优先级别数值,与PR有关
    (5) VIRT:进程占用的虚拟内存值 VIRT=SWAP+RES
    (6) RES:进程占用的物理内存值 RES=CODE+DATA
    (7) SHR:进程使用的共享内存值
    (8) S:进程的状态
    (9) %MEM:进程占用的物理内存占总内存百分比
    (10) TIME+:进程启动后占用的总的CPU时间
  • 更新间隔:默认是5秒;可以指定。
    linux:
    $ top d3
  • 常用命令:
    T:根据时间、累计时间排序
    P:根据CPU占有情况对进程列表进行排序
    M:根据内存占用情况排序
    N:根据启动时间进行排序
    m:切换显示内存信息
    t:切换显示进程和CPU状态信息
    C:切换显示命令名称和完整命令行
    W:将当前设置写入~/.toprc文件中(top的配置文件)
    U:输入用户名系统会切换为指定用户的进程运行界面
    h:获得top程序的在线帮助信息
    空格:强制更新进程状态显示
    q:正常退出top程序

9.CPU与内存资源使用统计:

  • vmstat命令:统计系统的资源使用,包括CPU与内存。
  • sar命令:有些系统支持sar命令,可用于CPU资源使用量统计。

10.vmstat命令:

  • 功能:统计系统的资源使用,包括CPU与内存。
  • 命令格式:vmstat interval [count]
    – interval:统计间隔
    – count:统计次数

    r:在运行队列中等待的进程数
    b:在等待io的进程数

11.sar命令:

  • 有些系统支持sar命令,可用于CPU资源使用量统计。
  • 命令格式:sar interval [count]
    – interval:统计间隔
    – count:统计次数
  • sar反馈的信息
    CPU:all 表示统计信息为所有 CPU 的平均值。
    %user:显示在用户级别运行使用 CPU 总时间的百分比。
    %nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。
    %system:在核心级别运行所使用 CPU 总时间的百分比。
    %iowait:显示用于等待I/O操作占用 CPU 总时间的百分比。
    %steal:管理程序为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
    %idle:显示 CPU 空闲时间占用 CPU 总时间的百分比。

12.查看进程信息:

  • pgrep命令:根据特定条件查询进程PID信息。
  • 常用命令选项:
    -l:列出进程的名称
    -U:根据进程所属的用户名进行查找
    -t:根据进程所在的终端进行查找

13.进程的不同启动方式:

  • 手工启动
    (1)前台启动:用户输入命令,直接执行程序。
    (2)后台启动:在命令行尾加入“&”符号。
  • Linux学习笔记(第十篇)进程管理_linux_04

  • 调度启动
    (1)使用at命令,设置在某个特定的时间,执行一次任务。
    (2)使用crontab命令,设置按固定的周期(如每天、每周等)重复执行预先计划好的任务。

14.进程的前后台调度:

  • Ctrl+Z 组合键
    将当前进程挂起,即调入后台并停止执行。
  • jobs命令
    查看处于后台的任务列表。
  • fg命令
    将处于后台的进程恢复到前台运行,需指定任务序号。

15.终止进程的运行:

  • Ctrl+C组合键
    中断正在执行的命令。
  • kill、killall命令
    (1)kill用于终止指定PID号的进程。
    (1)killall用于终止指定名称的所有进程。
    (3)-9 选项用于强制终止。

16.kill命令:

  • kill用于终止进程。
  • kill命令发出一个信号给指定的进程。
  • 信号是一个整数,用来指出kill的类型。
  • 进程是由进程号(PID)指定的,所以为了使用kill命令,用户必须知道要终止的进程的PID。
  • 信号: 信号值的取值范围为1到15。15通常是默认的信号值,该值让接收进程终止。
  • 有些进程不受kill信号的影响,可以用信号值9(确认终止)来终止这些进程。
  • kill -l … 显示信号列表
  • kill –signal pid
  • 普通用户只能终止自己的进程,系统管理员有权终止任何用户的进程。
  • PID 0使所有与shell有关的进程终止,包括shell本身。终止用户的所有进程,可以执行如下的命令:kill -9 0 [Return] … 用户退出系统

17.sleep命令:

  • sleep使执行该命令的进程延时指定的秒数。

Linux学习笔记(第十篇)进程管理_计划任务_05

18.pkill命令:

  • pkill根据特定的条件终止相应的进程。
  • 常用命令选项:
    -U:根据进程所属的用户名终止相应进程
    -t:根据进程所在的终端终止相应进程

19.进程的优先级:

  • 每个进程有个优先级,用一个数字表示:-20到20,优先级为-20的进程享有最大的优先级,而优先级为20的进程拥有最少的CPU时间。
  • 用&在后台运行的进程默认优先级为10。

20.nice与renice命令:

  • nice:启动进程时指定优先级。
    nice [-优先级值] 进程名
  • renice:进程运行中更改优先级。
    renice 优先级值 参数 进程名
  • 参数说明:
    -p: 修改进程号所标识进程的优先级;
    -u:修改指定用户所启动进程的优先级;
    -g:修改指定组中所有用户启动进程的优先级。

21.计划管理任务:

  • at命令:
  • crontab命令:

22.at命令:

  • at:在指定的日期、时间点自动执行预先设置的一些命令操作,属于一次性计划任务。
  • 服务脚本名称:/etc/init.d/atd
  • 设置格式:at [HH:MM] [yyyy-mm-dd]

23.crontab命令:

  • crontab:按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作,属于周期性计划任务。
  • 服务脚本名称:/etc/init.d/crond
  • 主要设置文件
    全局配置文件,位于文件:/etc/crontab
    系统默认的设置,位于目录:/etc/cron.*/
    用户定义的设置,位于文件:/var/spool/cron/用户名

Linux学习笔记(第十篇)进程管理_linux_06

  • 管理cron计划任务
    编辑计划任务:crontab -e [-u 用户名]
    查看计划任务:crontab -l [-u 用户名]
    删除计划任务:crontab -r [-u 用户名]

(注:root用户可以管理指定用户的计划任务
普通用户只能管理自己的计划任务)

  • crontab任务的配置格式
  • 时间数值的特殊表示方法
    * 表示该范围内的任意时间
    , 表示间隔的多个不连续时间点
    - 表示一个连续的时间范围
    / 指定间隔的时间频率
    【应用示例】
    0 17 * * 1-5 周一到周五每天17:00
    30 8 * * 1,3,5 每周一、三、五的8点30分
    0 8-18/2 * * * 8点到18点之间每隔2小时
    0 * */3 * * 每隔3天

24.crontab应用示例:

  • 示例1(root用户):
    每天早上7:50自动开启sshd服务,22点50时关闭
    每隔5天清空一次FTP服务器公共目录/var/ftp/pub
    每周六的7:30时,重新启动httpd服务
    每周一、三、五的17:30时,打包备份/etc/httpd目录
  • 示例2(jerry用户):
    每周日晚上23:55时将“/etc/passwd”文件的内容复制到宿主目录中,保存为pwd.txt文件
  • 示例3:
    root用户查看自己的计划任务列表
    查看并删除jerry用户设置的计划任务
  • Linux学习笔记(第十篇)进程管理_计划任务_07


标签:优先级,第十篇,笔记,命令,Linux,进程,CPU
From: https://blog.51cto.com/u_15856491/5815025

相关文章

  • Linux--多线程(三)
    生产者消费者模型概念:生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过一个来进行通讯,所以生产者生产完数......
  • Linux学习笔记(第十一篇)服务管理
    ​​Linux学习笔记(第零篇)计算机基础​​Linux学习笔记(第零篇)Linux文件系统及ShellLinux学习笔记(第一篇)零散命令Linux学习笔记(第二篇)目录操作命令Linux学习笔记(第三篇)文件操......
  • Linux学习笔记(第十二篇)网络基础
    ​​Linux学习笔记(第零篇)计算机基础​​Linux学习笔记(第零篇)Linux文件系统及ShellLinux学习笔记(第一篇)零散命令Linux学习笔记(第二篇)目录操作命令Linux学习笔记(第三篇)文件操......
  • Linux学习笔记(第十三篇)通信管理
    ​​Linux学习笔记(第零篇)计算机基础​​Linux学习笔记(第零篇)Linux文件系统及ShellLinux学习笔记(第一篇)零散命令Linux学习笔记(第二篇)目录操作命令Linux学习笔记(第三篇)文件操......
  • Linux学习笔记(第十四篇)管理常用网络服务
    ​​Linux学习笔记(第零篇)计算机基础​​Linux学习笔记(第零篇)Linux文件系统及ShellLinux学习笔记(第一篇)零散命令Linux学习笔记(第二篇)目录操作命令Linux学习笔记(第三篇)文件操......
  • Linux学习笔记(第十六篇)访问网络文件共享服务
    ​​Linux学习笔记(第零篇)计算机基础​​Linux学习笔记(第零篇)Linux文件系统及ShellLinux学习笔记(第一篇)零散命令Linux学习笔记(第二篇)目录操作命令Linux学习笔记(第三篇)文件操......
  • Javascript笔记 - 数组常用方法
    数组目录数组1.数组基础2.常用数组方法输出:toString()增删:push()、pop()、shift()、unshift()提取:splice()、concat()、slice()3.数组排序sort()reverse()4.数组迭代......
  • 【笔记】IntelliJ IDEA常用快捷键
    Ctrl+[Enter]:光标不动,在下一行前插入空行Ctrl+Shift+[Enter]:调整此行的缩进(如符号左右加空格)Ctrl+Alt+L:调整所有行的缩进Ctrl+E:显示最近的文件列表Ctrl+E+Shift:显示最近更改......
  • Javascript笔记 - JS中的函数
    函数目录函数1.函数的声明与定义2.方法3.作用域全局作用域函数作用域声明提前4.构造函数instanceof5.call()和apply()6.this和argumentsthisarguments1.函数的......
  • vue学习笔记
    今日内容概要Vuex的使用Vue-router的使用今日内容详细Vuex的使用Vuex:vue的插件,增强了vue的功能。在vue中实现集中式状态(数据)管理的一个vue插件,对vue应用中多个......