进程和计划任务管理

前言

一个程序被加载到内存当中进行,那么内存中的那个数据就被称为进程。进程是操作系统上非常重要的概念,所有系统上面运行的程序都会以进程的形式存在。那么系统的进程有哪些状态?不同的状态会如何影响系统的运行?进程之间又是否可以相互管理?结合我们的生产环境所遇到的情况我们可以思索一下这些问题。

概念

程序和进程的关系
程序:保存在硬盘,光盘等介质中的可执行代码和数据
静态保存的代码

进程:在cpu及内存中运行的程序代码
动态执行的代码
每个程序可以创造一个或多个进程。

子进程与父进程:当我们登录系统后,会获取一个bash的shell。然后用这个bash提供的接口去执行另一个命令,例如/usr/bin/passwd或是touch等,那些另外执行的命令也会被触发成为PID。那个后来执行命令所产生的PID就是子进程。而我们原本的bash环境下,就称为父进程。

线程和进程的区别:举个例子线程是车厢,进程是火车,车厢需要火车拉着走,一节火车头可以拖多个车厢。

命令

1.查看静态进程信息

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

①命令:ps aux

#将以简单列表的形式显示出进程信
常用的参数
-a:显示当前终端下的所有进程信息,包括其他用户的进程。与“x”选项结合时将显示系统中所有的进程信息。
-u:使用以用户为主的格式输出进程信息。
-x:显示当前用户在所有终端下的进程信息。
例1:显示进程数量为195-1个在这里插入图片描述
例2:查看单独进程要用到grep,如httpd
在这里插入图片描述
aux列表第一行参数的含义:
在这里插入图片描述
输出信息中,第一行为列表标题,其中各字段的含义描述如下。
USER:启动该进程的用户账号的名称。
PID:该进程在系统中的数字 ID 号,在当前系统中是唯一的。
%CPU:CPU 占用的百分比。
%MEM:内存占用的百分比。
VSZ:该进程使用的虚拟内存量(KB)。
RSS:该进程占用的物理内存量(KB)。
TTY:表明该进程在哪个终端上运行。不是从终端启动的进程则显示为?。
STAT:该进程的状态(D:不可中断的休眠状态:R:正在运行状态;S:处于休眠状态,可被唤醒;T:停止状态,可能是在后台暂停或进程处于跟踪调试状态: Z:僵尸进程,进程已经中止,但是部分程序还在内存当中)。
D:系统守护进程
T:调式、程序执行一般停止
R :该程序目前正在运作,或者是可被运作;
S :该程序目前正在睡眠当中 (可说是 idle 状态啦!),但可被某些讯号(signal) 唤醒。T :该程序目前正在侦测或者是停止了;
Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态D 不可中断状态.
注:僵尸进程:父进程退出,子进程没有退出,那么这
些子进程就没有父进程来管理了,就变成僵尸进程
START:启动该进程的时间。
TIME:该进程占用的 CPU 时间。
COMMAND:启动该进程的命令的名称
简说:pts 是远程登录终端 ctrl+ALT F1-F6 tty1 图像界面 2和6 字符界面 ? 系统本身自身执行的进程。

方法②ps -elf:

#将以长格式显示系统中的进程信息
-e:显示系统内的所有进程信息。
-1:使用长格式显示进程信息。
-f:使用完整的格式显示进程信息。.
输出信息中,第一行为列表标题,其中各字段的含义描述如下。
F:内核分配给进程的系统标记。
S:进程的状态。
UID:启动这些进程的用户。
PID: 进程的进程ID.
PPID:父进程的进程号(如果该进程是由另一“个进程启动的)
C:进程生命周期中的CPU利用率。
PRI:进程的优先级(越大的数字代表越低的优先级)。
NI: 谦让度值用来参与决定优先级。
ADDR:进程的内存地址。
SZ:假如进程被换出,所需交换空间的大致大小。
WCHAN:若该进程在睡眠,则显示睡眠中的系统函数名。
STIME:进程启动时的系统时间。
TTY:进程启动时的终端设备。 pts/0255代表虚拟终端,一般是远程连接的终端;tty1tty7 代表本地控制台终端
TIME:运行进程需要的累计CPU时间。
CMD:进程的启动命令。

注:这步添加一条生产环境的思路:从进程中找到问题服务然后,然进入该服务的日志文件,在日志文件中筛查问题。

2.查看动态信息

top命令:
在这里插入图片描述

uptime:当前时间
up 9.27 系统运行时间 ,说明此服务器连续运行 9小时
2 user 当前登录用户数
load averagre :系统平均负载
系统任务(Tasks)信息:total,总进程数;running,正在运行的进程数;sleeping, 休眠的进程数;stopped,中止的进程数;zombie,僵死无响应的进程数。
CPU 占用信息:us,用户占用;sy,内核占用;ni,优先级调度占用;id,空闲CPU;wa,I/O 等待占用;hi,硬件中断占用;si,软件中断占用;st,虚拟化占用。要了解空闲的 CPU 百分比,主要看%id 部分。
内存占用(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 程序

3.查询进程信息

pgrep:根据特定条件查询进程PID信息
例:查询log进程信息
在这里插入图片描述
例2:
pgrep -l -u vent -t tty1
-U:指定特定用户
-t:指定终端
tty:远程登录

pstree:以树形结构列出进程信息
结合以下常用的参数使用:
-p:选项使用时可以同时列出对应的PID号
-u:选项可以列出对应的用户名
-a:选项可以列出完整的命令信息
pstree -pua
例:
在这里插入图片描述
lsof -p:80查找所有端口为80的进程信息
在这里插入图片描述

4.进程启动方式

手工启动
前台启动:用户输入命令,直接执行程序
后台启动:在命令行尾加入“&"符号
在这里插入图片描述
调动启用
将任务从前台调到后台。
调度启动的计划任务进程均在后台进行,不占用用户的命令终端,使用”at“命令时,设置一次性计划任务。

5.进程的前后台调度

Ctrl+Z :是将当前进程挂起,即调入后台并执行
jobs—查看当前终端中在后台运行的进程任务,结合“-l”选项可以同时显示该进程的PID号(虚拟机中另开页面可能查询不到,需在同一界面下进行)
fg:将后台的进程恢复到前台执行。
bg:将后台暂停进程恢复执行。
除非后台中的任务只有一个,否则bg和fg命令都需要指定后台进程的任务编号作为参数
例如:“fg 1(任务编号)”

6.终止进程的运行

Ctrl +C 组合键
中断正在执行的命令
kill killall命令

kill用于终止指定PID号的进程
killall用于终止指定名称的所有进程
-9选项用于强制终止
案例:此处一定要勾选已连接,不然镜像文件无法模拟
在这里插入图片描述
就像这样。
在这里插入图片描述
勾选完就能找到介质。
在这里插入图片描述
kill -9就可以终止文件(单进程)
在这里插入图片描述
killall强制删除httpd所有进程,后面同样可以加 —9
restart可以让进程复原

pkill
根据进程的名称、运行该进程的用户、进程所在的终端等多种属性终止特定的进程
与“pgrep”命令选项类似,如“-U(指定用户名)”、“-t(指定终端)”

7.一次性计划任务:at

设置一次性计划时,在at命令中依次指定计划执行任务的时间、日期作为参数

确认后进入带“at>”提示符的任务编辑器界面,每行设置一条执行命令,可以依次设置多条语句,最后按Ctrl+D组合键提交任务
atq:查看计划任务列表(已执行的不会出现在列表)
atrm:删除计划列表任务(+序号)
例:
在这里插入图片描述

8.计划任务管理crontab

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

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

crontab任务配置格式
在这里插入图片描述
crontab任务配置的格式
时间数值的特殊表示方法
*表示该范围内的任意时间
,表示间隔的多个不连续时间点
-表示一个连续的时间范围
/指定间隔的时间频率

应用实例(分,时,日,月,周)
0 17 * * 1-5 周一到周五每天下午五点
30 8 * * 1,3,5 每周一周三周五的八点三十
0 8-18/2 * * * 8-18点每2个小时
0* */3 * * 每3天

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值