资讯详情

Linux系统的进程与计划管理

文章目录

  • 一、程序和进程的关系
    • 1.程序
    • 2.进程
  • 二、线程是什么
  • 三、查看过程统计信息
    • 1.ps命令查看静态过程统计信息
    • 2.top命令查看过程动态信息
      • 2.1top命令显示系统进程信息
      • 2.2top命令全屏操作界面快捷键
    • 3.pgrep命令根据特定条件查询过程信息
    • 4.pstree命令以树形结构列出过程信息
  • 四、控制过程
    • 1.手动启动过程
    • 2.过程前后台调度
      • 2.1.挂起当前流程
      • 2.2查看后台的任务列表jobs命令
      • 2.33恢复后台过程的运行
    • 3.终止流程执行
      • 3.1Ctrl C
      • 3.2kill命令终止进程
      • 3.3killall命令终止进程
      • 3.4pkill命令终止进程
  • 五、计划任务管理
    • 一次性计划任务at
    • 2.定期计划任务crontab
      • 2.管理计划任务
      • 2.2crontab实验


一、程序与过程的关系

我们知道操作系统的核心概念是过程。简单地说,过程是操作系统中的程序,是操作系统资源管理的最小单位。但这个过程是一个动态的实体,程序执行过程。 流程是动态的,流程是静态的,流程是运行中的流程,流程是硬盘上保存的可执行代码。

1.程序

  • 可执行代码和数据保存在硬盘、光盘等介质中
  • 静态保存在文件中的代码

2.进程

  • 在CPU程序代码在内存中运行
  • 动态执行代码
  • 父、子进程 -每个程序可以创建一个或多个过程

二、线程是什么

线程包含在过程中,是实际操作单际操作单位,也是操作系统中独立运行的基本单位,也称为轻线程,一个过程可以并发多个线程,每个线程可以执行不同的任务,我们在任务管理器中看到的过程是由我们下载的应用程序生成的,当然,应用程序也可以包含多个线程。

:创建了一个新的线程对象 :线程对象创建后,其他线程调用对象start()方法。该状态的线程位于可操作线程池中,等待线程调度选择并获得cpu的使用权。 :可运行状态的线程获得cpu时间片,执行程序代码 :阻塞状态是指线程因某种原因放弃cpu使用权,即让出cpu timeslice,暂时停止运行。直到线程进入可操作状态,才有机会再次获得。cpu timeslice转移到运行状态。有三种阻塞: ①等待阻塞:操作线程执行o.wait()方法,JVM将线程放入等待队列中。 ②同步阻塞:在获取对象的同步时,如果同步锁被其他线程占用,则运行线程LVM将线程放入锁池中。 ③其他障碍:操作线程执行Thread.sleep(longms)或t.join()方法,或发布I/O请求时,JVM线程将被阻塞。sleep()状态超时,join()等待线程终止或超时I/O处理完毕时,线程重新转入可运行状态。 :线程run()、main()方法执行结束,或因异常退出run()方法,线程结束生命周期。死亡线程不能重生


三、查看过程统计信息

1.ps命令查看静态过程统计信息

:过程信息将以简单列表的形式显示

-a:包括其他用户在内的所有流程信息都显示在当前终端下。"x"当选项结合时,显示系统中的所有过程信息 -u:以用户为主的格式输出过程信息 -x:在所有终端下显示当前用户的流程信息 

在这里插入图片描述 在上述输出信息中,第一行为列表标题,每个字段的含义描述如下: :用户账户名称启动此过程 :系统中的数字过程ID当前系统中唯一的数字。 :CPU占百分比 :内存占百分比 :虚拟内存使用的虚拟内存量(KB) :过程占用的物理内存(KB) :显示该过程在哪个终端上运行。不从终端开始的过程显示为? :过程状态(D:休眠状态不可中断;R:运行状态;S:处于休眠状态,可唤醒;T:停止状态可能是在后台暂停或跟踪调试过程;Z:僵尸进程,进程已经终止,但是部分程序还在内存当中)

D:不要中断状态 T:该程序目前正在检测或停止 R:该程序目前正在运行或可以运行 S:该程序目前正在睡觉,但可以被某些信号唤醒 Z:该程序应该已经终止,但其父不能正常终止,僵尸程序的状态 <:表示过程运行在高优先级上 N:表示过程运行在低优先级上 L:表示过程中有页面锁定在内存中 s:表示过程是控制内存 l:表示过程是多线程的  :表示当前流程在前台运行 

:启动过程时间 :进程占用CPU时间 :启动过程命令的名称

2.top命令查看过程动态信息

2.1top命令显示系统进程信息

top命令是Linux常用的性能分析工具可以实时显示系统中每个过程的资源占用情况,类似于Windows系统中的任务管理器


  • top - 12:18:20 ///表示当前系统时间
  • up 22 min //表示系统已经运行了
  • 1 user //
  • load average:0.00, 0.01, 0.05 ///表示系统平均负载,后面 平均负载为每1分钟、5分钟和15分钟三个数字

  • Tasks:168 total ///进程总数
  • 1 running ////正在运行的过程数
  • 167 sleeping ///睡眠过程数
  • 0 stopped ///停止过程数
  • 0 zombie ///僵尸进程数

  • 0.0 us //用户空间占用CPU百分比
  • 0.0 sy //内核空间占用CPU百分比
  • 0.0 ni // 在用户过程空间内改变优先级的过程占用CPU百分比
  • 100.0 id //空闲CPU百分比
  • 0.0 wa //等待输入输出CPU时间百分比
  • 0.0 hi ///硬中断占用CPU的百分比
  • 0.0si //软中断占用CPU的百分比
  • 0.0 st //虚拟化占用百分比

  • 1863248 total //物理内存总量
  • 961404 free //空闲的内存总量
  • 403260 used //使用的内存总量
  • 498584 buff/cache //用作内核缓冲或缓存的内存量

  • 2047996 total //交换区的总量
  • 2047996 free //空闲交换区的总量
  • 0 used //已使用交换区的总量
  • 1220104 avail Mem //代表可用于进程下一次分配的物理内存数量

  • PID //表示进程ID
  • USER //进程所有者的用户名
  • PR //表示优先级
  • NI //谦让度值。负值表示高优先级,正值表示低优先级
  • VIRT //进程使用的虚拟内存重量,单位kb
  • RES //进程使用的物理内存大小,单位kb
  • SHR //共享内存大小,单位kb
  • S //表示进程状态
  • %CPU // 上次更新到现在的CPU时间占用百分比
  • %MEM //进程使用的物理内存百分比
  • TIME+ //进程使用的CPU时间总计,单位1/100秒
  • COMMAND //命令名/命令行

2.2top命令全屏操作界面快捷键

默认3s刷新一次,按s修改刷新时间 按空格:立即刷新 P:按CPU排序 M:按内存排序 T:按时间排序 p:进程IP,查看某个进程状态 N:根据启动时间进行排序 数字键1:显示每个内核得CPU使用率u/U:指定显示的用户 h:可以获得top程序的在线帮助信息 q:可以正常地退出top程序

3.pgrep命令根据特定条件查询进程信息

常用的参数:
-l:选项可同时输出对应地进程名及PID
-U:选项查询特定用户的进程
-t:选项查询在特定终端运行的进程

例:pgrep -l “log”

4.pstree命令以树形结构列出进程信息

pstree命令默认情况下只显示各进程的名称
结合一下常用的参数使用:
-p:选项使用时可以同时列出对应的PID号
-u:选项可以列出对应的用户名
-a:选项可以列出完整的命令信息

执行如下的"pstree -aup"命令可以查看当前系统的进程树,包括各进程对应的PID号、用户名、完整命令等信息


四、控制进程

1.手动启动进程

由用户手工输入命令或者可执行程序得路径,可以至少启动一个进程。根据该进程是否需要占用当前的命令终端,手动启动又可以分为前台启动和后台启动

2.进程的前后台调度

2.1挂起当前的进程

当Linux操作系统中的命令正在前台执行时,按组合键可以将当前进程挂起(调入后台并停止执行)

Linux 终端命令的末尾加上一个 &表示将这个任务放到后台去执行,不用等待命令结束,直接执行下一条命令

2.2查看处于后台的任务列表jobs命令

常用的参数: -l:选项可以同时显示该进程对应的PID号

2.3将后台的进程恢复运行

使用bg命令可以将后台中暂停执行的任务恢复运行 使用fg命令,可以将后台任务重新恢复到前台运行 **注意:**除非后台中的任务只有一个,否则bg和fg命令都需要指定后台进程的任务编号作为参数

3.终止进程执行

3.1Ctrl+C

当用户在前台执行某个进程时,可以按ctrl+c组合键强制进行中断,终端前台进程的运行后,系统将返回命令行提示符状态等待用户输入新的命令

3.2kill命令终止进程

通过kill命令终止进程时,需要使用进程的PID号作为参数,无特定选项时,kill命令将给该进程发送终止信号并正常退出运行,若该进程已经无法响应终止信号,则可以结合"-9"选项强行终止进程,强行终止进程时可能会导致程序运行的部分数据丢失,因此不到不得已时不要轻易使用"-9"选项 对手无法正常终止的系统进程,在必要时可以结合"-9"选项强制执行

3.3killall命令终止进程

使用killall命令可以通过进程名称来终止进程,当需要借宿系统中多个相同名称的进程时,使用killall命令将更加方便,效率更高

3.4pkill命令终止进程

使用pkill命令可以根据进程的名称、运行该进程的用户、进程所在的终端等多种树形终止特定的进程,大部分选项与pgrep命令基本类似。


五、计划任务管理

1.一次性计划任务at

at [时间]
一次性执行的任务
ctrl+d              //退出
atq                 //查看未执行的任务
atrm 1              //删除第一条任务

2.周期性计划任务crontab

2.1计划任务管理

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

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

   *     *     *     *     *     command
minute  hour  day   month  week  command
  分     时     日    月      周    命令
字段 说明
分钟 取值为从0到59之间的任意整数
小时 取值为从0到23之间的任意整数
日期 取值为从1到31之间的任意整数
月份 取值为从1到12之间的任意整数
星期 取值为从0到7之间的任意整数,0或7代表星期日
命令 要执行的命令或程序脚本

* 表示该范围内的任意时间
,表示间隔的多个不连续时间点
- 表示一个连续的时间范围
/ 指定间隔的时间频率

示例:

0 17 * * 1-5          周一到周五每天17:00
0 8-18/2 * * *        8点到18点之间每2小时  

2.2crontab实验

建立两个周期计划任务 crontab -l 查看周期计划任务 到12:10时,httpd开启状态 到12:12时,httpd关闭状态 crontab -r删除周期计划任务


标签: 74aup2g126gf二极管74aup2g125gd二极管

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台