资讯详情

Linux进程和计划任务管理

系统服务控制

控制类型

管理过程和计划任务

程序与过程的关系

线程状态:

线程的三种状态

PS命令查看静态过程统计信息

常用的选项组和合

僵尸进程:

top命令-查看过程动态信息编辑

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

pgrep命令查询进程信息

pstree命令以树形结构列出过程信息

jobs在后台查看任务列表

kill命令及相关终止过程

kill

使用killall 命令终止进程

pkill 可指定用户删除

任务管理

at 一次性任务

周期性crontab任务配置格式


系统服务控制

系统服务控制

systemctl 控制类型 服务名称

控制类型

  • start:启动stop:停止

  • restart:重新启动

  • reload:重新加载

  • status:检查服务状态

什么是过程?让我们先了解一下过程的概念:我们知道操作系统的核心概念是过程。简单地说,这个过程操作系统中的程序,它是操作系统资源管理的最小单位。但过程是一个动态实体,是程序的执行过程。过程和程序的区别在于:过程是动态的,程序是静态的,过程是操作中的程序,程序是硬盘上保存的可执行代码 一个或多个执行程序代码; 程序:二进制文件,静态/bin/date,/usr/sbin/sshd 过程:是程序运行、动态、生命周期和运行状态的过程。 线程背包包含在过程中,是过程中的实际操作单位,也是操作系统中独立运行的基本单位,也称为轻过程,一个过程可以并发多个线程,每个线程可以并行执行不同的任务,我们在任务管理器中看到的过程是由我们下载的应用程序生成的,当然,应用程序也可以包含多个过程,如下面的百度网络磁盘,运行四种就绪状态的后台过程,一下子就是他们的大致管理关系。 员工(线程)公司(程序)-

项目任务(我们执行一个小项目) 所以换句话说,我们打开应用程序后,在后台操作相应的过程,然后我们点击应用程序中的一个功能,负责二次功能的操作,这样我们就可以完成操作员的命令,节省资源利用率,增强cpu的吞吐率。

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

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

线程状态:

1.新建(NEw):创建了线程对象。 2.可运行(RUNNABLE):创建线程对象后,其他线程(如main线程)调用对象start ()方法。该状态的线程位于可操作线程池中,等待线程调度选择并获得cpu的使用权。 3.运行(RUNNING):可运行状态(runnable)获得了线程cpu 时间片(timeslice)_,执行程序代码。 4.阻塞(BLOCKED):阻塞状态是指线程因某种原因放弃cpu使用权,即让出cpu timeslice,暂时停止运行,直到线程进入可运行。(runnabl)状态,才有机会再次获得cpu timeslice转到运行(running)状态。

阻塞的情况分三种:

(一).等待阻塞:运行(running)的线程执行o.wait()方法,JVWM会把该线程放入等待队列(waitting queue)中。 (二),同步阻塞:运行(running)的线程在获取对象的同步时,若该同步锁被别的线程占用,则JTw会把该线程放入锁池(lockpool) 中。 (三)﹒其他阻塞:运行(running)的线程执行Thread.sleep (long ms)或t.join()方法,或者发出了I/o请求时,JVwM会把该线程置为阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/o处理完毕时,线程重新转入可运行(runnable)状态。 5.死亡(DEAD):线程run () 、 main () 方法执行结束,或者因异常退出了run()方法,则该线程结束生命周期。死亡的线程不可再次复生

五种状态: 新建-》可运行-》运行-》阻塞-》死亡

线程的三种状态

在创建线程后存在等待cpu过来的执行的时间称为就绪状态

当cpu过来执行时就会转变成运行状态,而当cpu去执行别的线程时就会变回就绪状态

如果线程正在运行中而又发生了需要向硬盘发送访问请求等一系列需要耗时输入输出的操作时线程就会进入阻塞状态cpu就会转而执行其他线程,等到耗时操作结束后,之前阻塞状态的线程就会又变成就绪状态,而单核单线程cpu一次只能执行一个线程那就需要对每个线程轮流执行操作 而每单个计算的时间称为cpu的时间片,实际时间只有几十毫秒非常短的,因此就算是单核、单线程cpu也可利用自身速度去完成多线程应用程序所发布的任务,那么理论上也是可以运行多线程,程序的不过我没有单核、单线程cpu,所以不能从实践中得出真知

利用了线程等待的这个时间可以做别的事情了(协程切换任务源很小,效率高)

一个任务:多条线程同时执行

PS命令查看静态的进程统计信息

常用的参数 -a:显示当前终端下的所有进程信息,包括其他用户的进程。与"x"选项结合时将显示系统中所有的进程信息。 -u:使用以用户为主的格式输出进程信息。 -x:显示当前用户在所有终端下的进程信息。

常用的选项组和合

 上述输出信息中,第一行为列表标题,其中各字段的含义描述如下。 USER:启动该进程的用户账号的名称。 PID:该进程在系统中的数字ID 号,在当前系统中是唯一的。%CPU:CPU占用的百分比。 MEM:内存占用的百分比。 vsz:该进程使用的虚拟内存量(KB)。 RSS:该进程占用的物理内存量(KB)。 TTY:表明该进程在哪个终端上运行。不是从终端启动的进程则显示为?。 简说: pts 是远程登录终端ctrl+AIT F1-r6 tty1图像界面 2和6 字符界面 ? 系统本身自身执行的进程

该进程的状态(D:不可中断的休眠状态;R:正在运行状态;S:处于休眠状态,可被唤醒;T:停止状态,可能是在后台暂停或进程处于跟踪调试状态;Z:僵尸进程,进程已经中止,但是部分程序还在内存当中)

D:系统守护进程 T:调式、程序执行一般停止 R:该程序目前正在运作,或者是可被运作; s :该程序目前正在睡眠当中 (可说是 idle 状态 ),但可被某些讯号(signal)唤醒。 T:该程序目前正在侦测或者是停止了; Z:该程序应该已经终止,但是其父程序却无法正常的终止他,造成zombie (疆尸)程序的状态D不可中断状态. 它们含意如下: <:表示进程运行在高优先级上 N:表示进程运行在低优先级上:表示进程有页面锁定在内存中 s:表示进程是控制进程 l:表示进程是多线程的 +:表示当前进程运行在前台 D:系统守护进程 T调式、程序执行一般停止

D[aemon] :守护进程R[unning] : 正在运行s [ leep] :睡眠状态Z [ ombie]:僵尸状态

优先级: <:高优先级:低优先级:前台进程 :该进程是多线程的 START:启动该进程的时间。 TIME:该进程占用的CPU时间。 COMMAND:启动该进程的命令的名称

一个进程结束了,但是如果该进程的父进程已经先结束了,那么该进程就不会变成僵尸进程,因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程,看有没有哪个进程是刚刚结束的这个进程的子进程,如果是的话,就由ILnit来接管它,成为它的父进程,子进程退出后init会回收其占用的相关资源。但是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。

进程状态。常见的状态有以下几种: -D:不可被唤醒的睡眠状态,通常用于I/O 情况。

-R:该进程正在运行。 -S:该进程处于睡眠状态,可被唤醒。 -T:停止状态,可能是在后台暂停或进程处于出错状态。 -W:内存交互状态(从2.6内核开始无效)。 -X:死掉的进程(应该不会出现)。 -Z:僵尸进程。进程已经中止,但是部分程序还在内存当中。

-<:高优先级(以下状态在BSD格式中出现)。 -N:低优先级。 -L:被锁入内存。

-s:包含子进程。 -l:多线程(小写L) 。

-+:位于后台。 -C:进程占用cPU的百分比

top命令-查看进程动态信息

18:40:19 表示当前时间 ;up 2 min 系统运行时间,说明此服务器运行了2分钟 2 users  当前登录用户数  load average: 0.53,0.41,0.17   系统负载,即任务队列的平均长度。三个数值分别为1分钟、5分钟、15分钟前到现在的平均值。

系统任务(Tasks)信息: total,总进程数;running,正在运行的进程数;sleeping,休眠的进程数; stopped,中止的进程数;zombie,僵死无响应的进程数。 CPU占用信息: us,用户占用;sy,内核占用;ni,优先级调度占用; id,空闲cP0;wa,I/o 等待占用; hi,硬件中断占用; si,软件中断占用;st,虚拟化占用。要了解空闲的CPU百分比,主要看8id部分。 内存占用(Mem)信息: total,总内存空间;free,空闲内存; used,已用内存;buff/cache,物理内存和交换内存的缓冲区总和。 交换空间(Swap)占用: total,总交换空间;free,空闲交换空间;used,已用交换空间; avail Mem,可用物理空间。

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

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

pgrep命令查询进程信息

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

例如:pgrep -l  "log"

例2  pgrep -l -U teacher -t tty1

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

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

执行如下的"pstree -aup"命令可以查看当前系统的进程树,包括各进程对应的PID号、用户名、完整命令等信息。从输出结果中可以看出,systemd进程确实是 Linux操作系统中所有进程的"贻祖" 示例:pstree -aup root

可结合管道特定查找

  

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

 

 

kill命令及相关终止进程命令

kill

 SIG:信号 模拟信号和数字信号

使用killall 命令终止进程

使用 killall 命令可以通过进程名称来终止进程,当需要结束系统中多个相同名称的进程时,使用killall命令将更加方便,效率更高。killall 命令同样也有"-9"选项。例如,执行如下的"killall -9 vim"命令可将所有名为 vim的进程都强行终止

创建vim进程 

使用killall 命令指定删除

 

 pkill 可指定用户删除

用ps aux 可查看到有ceshi用户的进程

使用 pgrep 指令过滤查找出ceshi 用户信息 并使用pkill命令删除 

 

 任务管理

 at 一次性任务

在Linux操作系统中,除了用户即时执行的命令操作以外,还可以配置在指定的时间、指定的日期执行预先计划的系统管理任务〈如定期备份、定期采集监测数据)。CentoS 系统中默认已安装了at、cronie 软件包,通过 atd 和 crond 这两个系统服务实现一次性、周期性计划任务的功能,并分别通过 at、crontab 命令进行计划任务设置

周期性crontab任务配置的格式

时间数值的特殊表示方法

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

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

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