前言
通过之前的学习,我们了解了Linux的引导过程,以及如何控制系统服务、优化系统服务。若要详细了解系统中的各种程序信息、关闭失去响应的进程,以及在指定的时间自动执行任务,应该如何操作呢?下面我们一起学习进程管理和计划任务管理的相关知识和技术。
一、程序和进程的关系
程序:
1.保存在硬盘、光盘等介质中的可执行代码和数据
2.静态保存的代码
进程:
1.在CPU及内存中运行的程序代码
2.动态执行的代码
3.父、子进程
应用程序、进程、线程
一个应用程序可以包含一个或者多个进程
一个进程可以包括一个或多个线程
线程是执行操作的最小单元(最基本单元)
应用程序=工厂 进程=车间 线程=工人
高并发处理依赖于多线程操作 (thread 线程)
ps命令
查看静态进程的统计信息:ps aux
a:显示当前终端下的所有进程信息,包括其他用户的进程。与“x”选项结合时将显示系统中所有的进程信息。
u:使用以用户为主的格式输出进程信息。
x :显示当前用户在所有终端下的进程信息
站在用户的角度思考问题,与客户深入沟通,找到曲麻莱网站设计与曲麻莱网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、成都网站设计、企业官网、英文网站、手机端网站、网站推广、域名注册、网站空间、企业邮箱。业务覆盖曲麻莱地区。
查看静态的进程统计信息
-e:显示系统内所有进程信息。
-l:使用长格式显示进程信息。
f:使用完整的格式显示进程信息。
能查看父进程。
列表标题含义:
USER:启动该进程的用户账号的名称。
PID:该进程在系统中的数字ID号,在当前系统中是唯一的。
TTY:表明该进程在哪个终端上运行。“?”表示未知或者不需要终端。
STAT:显示进程的当前状态,如 S(休眠)、R(运行)、Z(僵死)、<(高优先级)、N(低优先级)、s(父进程)、+(前台进程)。对于僵死状态的进程应该予以手动中止。
START:启动该进程的时间。
TIME:该进程占用的CPU时间。
COMMAND:启动该进程的命令的名称。
%CPU:CPU占用的百分比。
%MEM:内存占用的百分比。
VSZ:占用虚拟内存(swap空间)的大小。
RSS:占用常驻内存(物理内存)的大小。
查看动态的进程排名信息:top
pgrep命令
根据特定条件查询进程PID信息
-l 显示进程名
-U 指定特定用户
-t 指定终端
以树形结构列出进程信息:pstree
进程的启动方式
1.手工启动
-
前台启动:用户输入命令,直接执行程序
-
后台程序:在命令行尾加入“&”符号
2.调度启动
-
使用at命令,设置一次性计划任务
-
使用crontab命令,设置周期性计划任务
进程的前后台调度
1.Ctrl+Z组合键:将当前进程挂起,即调入后台并停止运行
2.jobs命令:查看处于后台的任务列表
3.fg命令:将后台进程恢复到前台运行,可指定任务序号
终止进程的运行
kill、killall命令
kill用于终止指定PID号的进程 kill pid
killall用于终止指定名称的所有进程 killall 进程
-9 选项用于强制终止
pkill命令
根据特定条件终止相应的进程
常用的命令选项:
-u:根据进程所属的用户名终止相应进程
-t:根据进程所在的终端终止相应进程
管理员可以关闭用户的所有进程,而用户不可以中止管理员的进程。
计划任务管理
1.at命令:一次性计划任务
at 【HH:MM】【yyyy-mm-dd】
查看和删除等待执行的命令
atq 查看等待执行的任务列表
atrm 删除等待执行的任务(按编号删除)
2.crontab命令
-
按照预先设置的时间周期(分、时、日、月、周)重复执行用户指定的命令操作
-
属于周期性计划任务
-
主要设置文件
全局配置文件,位于文件:/etc/crontab
系统默认的设置,位于目录:/etc/cron/
用户定义的设置,位于文件:/var/spoot/cron/用户名
管理cron计划任务
-
编辑计划任务:crontab -e 【-u 用户名】
-
查看计划任务:crontab -l 【-u 用户名】
-
删除计划任务:crontab -r 【-u 用户名】
我们用crontab -e进入当前用户的工作表编辑,是常见的vim界面。每行是一条命令。
crontab的命令构成为 时间+动作,其时间有分、时、日、月、周五种,操作符有
※ 取值范围内的所有数字
/ 每过多少个数字
— 从X到Z
, 散列数字
实例
0 17 (1-5 周一到周五每天17:00)
30 8 (1,3,5 每周一、三、五的8点30分)
0 8-18/2 (8点到18点之间每2小时)0 /3 * (每3天)
分享标题:进程和计划任务管理
分享URL:
http://njwzjz.com/article/jhicic.html