进程计划任务管理
文章目录
前言:
详细了解系统中运行的各种程序信息,关闭失去响应的进程,以及在指定时间自动执行任务。搞定操作方法。
1.程序和进程的关系:
1.1程序
保存在硬盘丶光盘等介质中的可执行代码和数据
静态保存的代码
1.2进程
在CPU及内存中运行的程序代码
动态执行的代码
父丶子进程:
每个进程可以创建一个或多个进程
2.查看进程信息PS:
ps命令
PS显示当前用户会话打开的进程
2.1查看静态的进程统计信息 ps-aux
以简单的列表形式显示出进程信息
2.2查看静态进程统计进程信息ps-elf
以长格式显示系统信息,比较详细
由于系统中的进程很多,需要查询某一个进程的信息时可以结合管道操作grep命令进行过滤,例如:执行以下操作可以过滤出包含“bash”的进程信息
3.top查看动态进程:
使用PS命令查看到一个静态的进程信息,并不能连续地反馈出当前进程的运行状态,使用top命令可以查看动态刷新的方式显示各进程的状态信息,默认情况下每三秒刷新一次,按c cpu可以从高到低排,m排序内存
开头部分显示了系统任务,CPU占用,内存占用,交换空间等汇总信息,相关信息的含义如下:
4.pgrep命令查询进程信息:
当使用PS命令查询某个进程的PID信息时,往往需要结合grep命令对输出结果进行过滤,但这样使用十分不方便,但是pgrep命令则正是用来查询特定进程信息的专用工具。
通过pgrep命令,可以只指定进程的一部分名称进行查询,结合-l选项可以同时输出对应的进程名,例如,查询进程名中包含“log”的进程及PID号
查看root用户在tty1终端的进程和PID号 pgrep -l -U 用户 -t 终端
5.查看进程信息pstree-查看进程树:
pstree命令可以输出Linux系统中各进程的树形结构,可以更直观的判断各进程的相互关系(父,子进程)
以树形结构列出进程信息
pstree -aup
-a:显示完整信息
-u:列出对应用户名
-p: 列出对应PID号
例如,执行“pstree -aup”命令可以查看当前系统的进程树,包括各进程对应的PID号,用户名,完整命令等信息
使用pstree命令时,也可以只查看属于特定用户的进程树结构,只要指定用户名作为参数即可,例如执行以下操作可以列出超级用户root打开的进程号及子进程的树结构
6.控制进程:
6.1.进程的启动方式
手工启动:由用户手工输入命令或者可执行程序的路径,可以至少启动一个进程。根据该进程是否需要占用当前的命令终端手工启动分为前台启动和后台启动
前台启动:用户输入命令,直接执行程序
后台启动:在命令行尾加入“&”符号
例如当前使用cp命令从光盘中制作镜像文件时,由于需要复制的数据较多,耗时长,因此可以结合“&”符号将复制操作放到后台运行,以便用户可以继续执行其他命令操作
调度启动进程:
有些任务非常费时,适合在相对空闲的时间进行,我们便可以使用调度安排启动
at命令,设置一次性计划任务(如 16:40重启网络服务)
利用atrm 任务号可以删除任务
crontab,命令,设置周期性计划任务
6.2改变进程的运行方式
1.挂起当前的进程
当Linux系统中的命令正在前台执行时,按Ctrl+Z组合键可以将前台进程挂起,调入到后台并停止执行
例如使用weight命令下载windows安装包,使用ctrl+z组合键将该下载任务调入后台并暂停执行
2.查看后台运行进程:
需要查看当前终端在后台运行的进程任务时,可以使用jobs命令,结合-l选项可以同时显示出该进程对应的PID号。
3.将后台的进程恢复运行
将后台进程恢复到前台运行,可以指定任务序号
bg(BackGround)命令可以将后台中暂停执行的任务恢复运行,继续在后台执行操作
fg(ForeGround)命令可以将后台任务恢复到前台运行
除非后台任务只有一个,否则bg和fg命令都需要指定后台进程的任务编号作为参数
6.3终止进程执行
平常可以使用Ctrl + C组合键强制中断
Ctrl + C组合键无法中止后,可以使用专门的进程中止工具 kill,killall,pkill
1.使用kill命令终止进程
kill命令需要使用进程的PID号作为参数
若进程无法响应,可结合“-9”选项强行中止进程。强行中止进程可能会到时部分数据丢失,谨慎使用
使用kill-9的方法强制杀死该进程
2.使用killall命令终止进程
killall命令通过进程名来中止进程,可终止指定名称所有进程(可理解为终止进程树)
killall命令同样有“-9”选项,强制终止进程
3.使用pkill命令终止该进程
根据特定条件终止相应的进程
常用命令选项:
-U:根据进程所属的用户名终止相应的进程
-t:根据进程所在的终端终止相应的进程
7.计划任务管理:
在Linux操作系统中,除了用户即时执行的命令操作外,还可以配置在指定时间丶指定日期执行预先计划好的系统管理任务(如定期备份丶定期采集监测数据)。Centos7系统中的计划任务是由at·croine 软件包提供,通过atd和crond这两个系统服务实现一次性丶周期性计划任务的功能,并分别通过at丶crontab命令进行计划任务设置。
7.1 at一次性任务设置
使用at命令设置的计划任务只在指定的时间执行一次,前提是对应的系统服务atd必须已经运行。
设置一次性计划任务时,在at命令行中依次指定计划执行任务的时间,日期作为参数,确认后将进入带“at>”提示符的任务编辑界面,每行设置一条执行命令,可以依次设置多条语句,最后按ctrl+D组合键提交任务即可
案例:在2020年6月21日的13点40分统计该时间点系统中由root用户运行的进程数量,并将该数值保存到/tmp/ps.root文件中
总结:at命令使用顺序:
查看时间–>设置时间–>输入命令–>Ctrl + D提交任务
date:查看当前时间。设置任务,时间不可在当前时间之前
命令输入完成后按 Ctrl + D组合键提交任务即可
案例:在当天的15点自动关闭当前系统,用atq查看执行任务列表,并用atrm删除待命任务
Atq命令查看待执行任务的列表,atrm删除待命任务
7.2Crontab周期性任务设置
使用crontab命令设置的计划任务可以按预设周期重复执行,可以减轻设置重复性系统管理任务的操作,由软件包cronie提供crontab工具,系统服务crond和配置文件/etc/crontab。
7.2.1 crontab的配置文件和目录
/etc/crontab 系统任务配置文件
/etc/crontab文件中设置的是维护Linux系统所需要的任务,由Linux系统及相关程序安装时自动设置,不建议用户手动修改此文件。
/etc/crontab./ 系统默认设置cron任务的配置文件存放目录
软件包crontabs安装后,会在/etc/cron./目录下生成存放一些系统默认设置的计划任务目录,设置了系统每小时丶每一天做些什么工作。
/var/spool/cron/ 用户cron任务的配置文件存放目录
由用户自行设置的cron计划任务将被保存到目录/var/spool/cron/中。
2.使用crontab命令管理用户的计划任务
设置用户的周期性计划任务列表主要通过crontab命令执行,结合不同选项可以完成不同的计划任务管理操作。
编辑计划任务:
crontab -e 用户名
查看计划任务:
crontab -l 用户名
删除计划任务
crontab -r 用户名
-e | 编辑计划任务列表 |
---|---|
-u | 指定所管理的计划任务属于哪个用户 |
-l | 列表显示计划任务 |
-r | 删除计划任务列表 |
例如每天晚上的10:30自动执行任务,完成以下操作,显示当前的系统时间并查看已挂载磁盘分区的磁盘使用情况,将输出结果追加到文件/var/log/df.log中,持续观察硬盘空间变化
确认所设置的计划任务列表,查看任务计划用crontab -l命令可以查看
分时日月周的取值范围和命令的说明:
时间数值的特殊表示方法和表示方法
*表示该范围内的任意时间
,表示间隔的多个不连续时间点
-表示一个连续的时间范围
/指定间隔的时间频率