进程和计划任务管理

目录

一、程序、进程、线程

1、程序

2、进程

3、 线程

 二、查看静态的进程统计信息(ps)

三、查看动态进程统计信息 top

1、top内容介绍​编辑

2、top命令    

3、pgrep命令  查询进程信息

4、pstree 以树形结构列出进程信息

 四、进程的启动方式

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

2、bg、fg、&

3、终止进程(kill、killall、pkill)

 五、计划任务管理

1、一次性计划任务 at(默认当天时间)

2、周期性计划任务 crontab

1、 crontab 任务配置格式

2、crontab案例

总结


一、程序、进程、线程

我们知道操作系统最核心的概念就是进程,进程简单来说就是在系统中运行的程序,他是操作系统资源的最小单位,但是进程是一个动态的实体,他是程序的一次执行过程,进程和程序的区别在于:进程是动态的,程序是静态的,进程是运行中的程序,二而程序是一些保存在硬盘上的可执行代码

1、程序

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

2、进程

在CPU及内存中运行的程序代码
动态执行的代码
父、子进程(每个程序可以创建一个或多个进程)
有生命周期及运行状态
进程和计划任务管理_第1张图片

进程和计划任务管理_第2张图片

3、 线程

负责功能的运行
多线程可同时运行多个任务线程状态:
1.新建(NEW):
新创建了一个线程对象。
2.可运行(RUNNABLE):
线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu的使用权。
3.运行(RUNNING):
可运行状态(runnable)的线程获得了cpu时间片(timeslice)执行程序代码。
4.阻塞(BLOCKED):
阻塞状态是指线程因为某种原因放弃了cpu使用权,即让出了cup timeslice,暂时停止运行。直到线程进入可运行(runnable)状态,才有机会再次获得cup timeslice转到运行(running)状态。
阻塞的情况分三种
① 等待阻塞:运行的线程执行o.wait () 方法,JVM会把该线程放入等待队列(waitting queue)中。

(前面任务没有完成,到了下一个任务,而这个任务建立在前面的基础上做)
② 同步阻塞:运行的线程在获取对象的同步锁时,若该同步锁被别的线程占用,则JVM会把该线程放入锁池(lock pool)中。 (2个对象对同一个任务去处理,这个任务只能由一个对象去处理)
③ 其他阻塞:运行的线程执行Thread.sleep(longms)或t.join()方式,或者发出了I/O请求时,JVM会把该线程置为阻塞状态。当sleep()状态超时,join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入可运行状态。 (资源不够用)
5.死亡(DEAD):
线程run()、main()方式执行结束,或者因异常退出了run()方法,则该线程结束生命周期。死亡的线程不可再次复生

线程状态: 新建---可运行---运行---阻塞---死亡

协程、回调都是为了效率

进程和计划任务管理_第3张图片

 二、查看静态的进程统计信息(ps)

常用选项

选项 作用
-a 显示当前终端下的所有进程信息,包括其他用户的进程
-u 使用以用户为主的格式显示进程信息
-x 显示当前用户在所有终端下的进程信息

进程和计划任务管理_第4张图片  

ps组合命令   ps -aux 查看静态进程统计信息进程和计划任务管理_第5张图片

USER    启动该进程的用户账号名称
PID    该进程在系统中的数字ID号,在当前系统中是唯一的
%CPU    CPU占用的百分比
%MEM  内存占用百分比
VSZ 该进程使用的虚拟内存量(单位:KB)
RSS 该进程占用的物理内存量(单位:KB)
TTY  

表示终端   标明该进程在哪个终端上运行。

pts是远程登录终端,tty1:图像界面,tty2和tty6:字符界面,?:系统本身执行的进程

STAT 该进程的状态
START    启动该进程的时间(什么时候启动的)
TIME  该进程占用CPU的时间(启动需要花多少时间)
COMMAND     启动该进程的命令的名称

STAT进程状态

-D: 不可被唤醒的睡眠状态,通常用于I/O情况  (系统守护进程)
-R: 该进程正在运作
-S: 该进程处于睡眠状态,可被唤醒
-T:停止状态,可能是在后台暂停或进程处于出错状态。
-Z: 该程序应该已经终止,但是其父程序却无法正常的终止他,造成zombie(疆尸)程序的状态D不可中断状态。(进程已经中止,但是部分程序还在内存中)  僵尸进程
-<: 表示进程运行在高优先级上 (高优先级,以下状态在BSD格式中出现)
-N: 表示进程运行在低优先级上  (低优先级)
-L:表示进程有页面锁定在内存中   (被锁入内存)
-s:表示进程是控制进程  (包含子进程)
-l:表示进程是多线程的    (多线程)
-+:表示当前进程运行在后台
-C:进程占用CPU的百分比
+:前台进程

三、查看动态进程统计信息 top

1、top内容介绍

信息 含义
18:58:35 当前时间
up 10:29 系统运行时间
2 users 当前登录的用户数
load averaqe :0.00,0.01,0.04 系统负载,即任务队列的平均长度,三个数值分别为1分钟、5分钟、15分钟前到现在的平均值

平均负载解释
假如是单核cpu:
满负载就是1.00,满负载不是代表系统以及运行不了,而是如果有多出来的任务,那就需要进行等待。
如果为1.20,表示CPU已经超负载运行,有0.2个任务需要进行等待才可以运行。
如果为0.70,表示CPU在未达到满负载运行,还可以运行其他任务。
假如是双核CPU:
那满负载的值就是2.00。其它依次类推

信息 含义
201 total 总进程数201个
1 running 正在运行的进程数1个
200 sleeping 休眠的进程数:200个
0 stopped 终止的进程数:1个
0 zombie 僵死无响应的进程数:0

信息 含义
0.0 us 用户占用
0.0 sy 内核占用
0.0 ni 优先级调度占用
100.0 id 空闲CPU
0.0 wa I/O等待占用
0.0 hi 硬件中断占用
0.0 si 软件中断占用
0.0 st 虚拟化占用

信息 含义
total 总内存空间
free 空闲内存
used 已用内存
buff/cache 缓冲区和缓存区的总和

信息 含义
total 总交换空间
free 空闲交换空间
used 已用交换空间
avail Mem 可用物理空间

进程和计划任务管理_第6张图片

PID    进程id号
USER 进程所有者的用户名
 PR      优先级(由内核动态调整),用户不能
NI 进程优先级,nice值,负值表示高优先级,正值表示低优先级,用户可自己调整
VIRT     虚拟内存,是进程正在使用的所有内存
RES    进程所使用的物理内存
SHR 共享内存大小,(单位KB)
S   进程状态
%CPU 上次更新到现在的CPU时间占用百分比
%MEM  进程使用的物理内存百分比
TIME+  进程使用的CPU时间总计,单位1/100秒
COMMAND     命令名/命令行

CPU 内存占用过大的处理方法    

top 
按k 后输入内存较大的进程号回车,再次确认并回车,这样就终止该进程

2、top命令    

默认情况下每3秒刷新一次,按s键修改刷新时间,按空格:立即刷新
top 命令全屏操作界面快捷键

命令键 功能
P 按CPU排序
M 按内存排序
T 按时间排序
k 根据提示输入指定进程的PID号,并按Enter键终止对应的进程
p 进程IP,查看某个进程状态
N 根据启动时间进行排序
数字键1 显示每个内核的CPU的个数和状态
h 可以获得top程序的在线帮助信息
u/U 指定显示的用户
q 退出top程序

3、pgrep命令  查询进程信息

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

进程和计划任务管理_第7张图片

 4、pstree 以树形结构列出进程信息

选项 作用
-p 使用时可以同时列出对应的PID号
-u 可以列出对应的用户名
-a 可以列出完整的命令信息

进程和计划任务管理_第8张图片

 四、进程的启动方式

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

jobs -l 选项可以同时显示该进程对应的PID号进程和计划任务管理_第9张图片

 2、bg、fg、&

bg(在后台暂停的进程恢复运行)
fg(把进程从后台拿到前台)
&(把进程放入后台)
ctrl+z(将当前进程挂起,放入后台暂停执行)

tail -f /var/log/messages & 把该进程放入后台
jobs -l  查看是否放入后台
fg+任务号   把后台的任务放到前台
ctrl+z 把该任务挂起并放入后台暂停执行
bg 把该暂停任务恢复运行并继续放在后台
jobs 查看是否恢复运行进程和计划任务管理_第10张图片

3、终止进程(kill、killall、pkill)

kill -l :查看所有选项发出的信号进程和计划任务管理_第11张图片

 killall+进程名字      终止所有该名字的进程

进程和计划任务管理_第12张图片

pkill  可以根据进程的名称、运行该进程的用户、进程所在的终端等多种属性终止特定的进程

选项 作用
-U 根据进程所属的用户名终止相应进程
-t 根据进程所在的终端终止相应进程

进程和计划任务管理_第13张图片

 五、计划任务管理

1、一次性计划任务 at(默认当天时间)

atq   查看一次性任务
atrm+任务号  删除一次性任务
ctrl+D(D不区分大小写)  提交一次性任务

进程和计划任务管理_第14张图片

 2、周期性计划任务 crontab

按照预先设置的时间周期(分、时、日、月、周)重复执行用户指定的命令操作
属于周期性计划任务
主要设置文件
全局配置文件,位于文件:/etc/crontab
系统默认的设置,位于目录:/etc/cron.d/
用户定义的设置,位于文件:/var/spool/cron/用户名
概括:crontab守护进程会自动检查/etc/crontab文件、/etc/cron.d/目录及/var/spool/cron/目录中的改变,如果发现配置有更改,它们就会被载入内存,所以当某个crontab文件改变后并不需要重新启动,crond守护进程就可设置生效。
进程和计划任务管理_第15张图片

1、 crontab 任务配置格式

字段 分钟 小时 日期 月份 星期 命令
范围 0-59 0-23 1-31 1-12 0-7(0或7代表周日) 要执行的命令或程序脚本

时间数值的特殊表示方法

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

分     时       日      月     周
10     8        *       *     1-5        周一到周五每天8点10分
20     19       *       *     1,5,7     每周一、三、五的晚上7点20分 
*/2    10       *       *      *          10点的每2分钟
0      *        */2     *      *          每2天
0      5-11/2   *       *      *          5点到11点间每2小时

默认情况下不使用-u是针对root用户,只有root用户才能对其它用户使用-u选项
编辑计划任务
格式:crontab -e [-u 用户名]
查案计划任务(不加-u就是查看自己的计划任务表,加-u就是指定查看某用户的计划任务表)
格式:crontab -l [-u 用户名]
删除计划任务(删除全部,若要删除某一个,需要进入到crontab -e 内部进行删除)
格式:crontab -r [-u 用户名]

2、crontab案例

①定时写入任务

进程和计划任务管理_第16张图片

②定时删除任务

进程和计划任务管理_第17张图片

③定时开关防火墙服务设置 进程和计划任务管理_第18张图片

总结

程序、进程、线程
静态进程查询  ps -aux    pgrep   pstree  
动态进程查询  top
jobs -l      &      bg      fg  
终止进程 kill    killall    pkill
任务管理    一次性任务 at     周期任务 crontab

你可能感兴趣的:(linux,运维,服务器)