文章目录
一、查看进程
1.1:程序和进程的关系
1.1.1:程序
- 保存在光盘,硬盘等介质中的可执行代码和数据
- 静态保存的代码
1.1.2:进程
- 在CPU及内存中运行的代码
- 动态执行的程序
- 父,子 进程—每个程序可以创建一个或多个进程
1.2:ps命令查看
- 静态查看 ps命令
ps命令是Linux系统中最为常用的进程查看工具,主要用于显示包含当前运行的各进程完整信息的静态快照
ps命令基本格式
ps [选项]
a 显示当前终端下的所有进程信息,包括其他用户的进程、与“x”选项结合时将显示系统中所有的进程信息
u 使用以用户为主的格式输出进程信息
x 显示当前用户在所有终端下的进程信息
-e 显示系统内的所有进程信息
-l 使用长(Long)格式显示进程信息
-f 使用完整的(Full)格式显示进程信息
-
执行不带任何选项的ps命令时,将只显示当前用户会话中打开的进程
-
ps aux命令 以简单列表的形式显示出进程信息
-
上述输出信息中,第一行为列表标题,其中个字段的含义如下
USER:启动该进程的用户账号的名称
PID :该进程在系统中的数字ID,在当前系统中是唯一的kill -9 PID号
TTY :表明该进程在哪个终端上运行,“?”表示不需要终端
STAT:显示了进程当前的状态,如S(休眠)、R(运行)、Z(僵尸)、<(高优先级)、
N(低优先级)、s(父进程)、+(前台进程)、对于僵尸进程要手动关闭
START:启动该进程的时间
TIME:该进程占用的CPU时间
COMMAND:启动该进程的命令名称
%CPU:占用CPU百分比
%MEM:占用内存百分比
VSZ: 占用虚拟机内存大小(swap)
RSS: 占用物理内存的大小(物理内存) -
ps -elf 命令:以长格式显示系统中的进程信息
PPID:表示对应进程的父进程的PID号
PRI:用户态优先级(人为)
NI: nice值,内核态优先级,取值范围(-20~19),值越小,优先级越高
ADDR:若是 - ,代表正在运行
SZ:在swap交换分区的容量
WCHAN:当前进程在内核中的名称
STIME:启动时间
1.3:pstree查看命令
- pstree命令以属性结构列出进程信息,可以更直观的判断各进程的相互关系(父,子进程)
yum -y install psmisc 安装pstree命令
pstree -aup
-a: 显示完整信息
-u:列出对应用户名
-p:列出对应PID号
1.4:top动态查看
选项:M:以内存大小排序
c:以CPU占用排序
h:top程序在线帮助信息
q:退出
二、控制进程
2.2:进程的启动方式
2.2.1:手工启动
- 前台启动:用户输入命令,直接执行程序
- 后台启动:在命令末尾加入“&”符号
[root@localhost ~]# cp /dev/cdrom mycd.iso& --在后台运行复制镜像文件进程'
[1] 3227 -----输出信息中心包括后台任务序号,PID号'
- grep
pgrep -l -U “tom” ###查看tom运行的进程
pkill -9 -U “tom” ###强行终止tom运行的进程
pgrep -l -U “tom” ###在查看tom运行的进程 - pkill -9 -U “tom” 与 kill -9
killall 用法:
killall hello1 —杀死某个进程
killall hello* —杀死以hello开头的相关所有进程
sudo killall -u tom —杀死tom用户运行的所有进程
killall -o 5h —杀死进程时间大于5小时的进程
killall -y 4h —杀死进程时间小于4小时的进程
killall -I HELLO —忽略大小写 - kill用法:
1(HUP)-重新加载进程。
9(KILL)-终止进程。
15(TERM)-正常停止进程
kill -l ----获取信号列表
kill -9 +进程号
三、at一次性任务设置
格式:at [HH:MM] [yyyy-mm-dd] '//at 时:分 年-月-日'
- at命令使用顺序
查看时间–>设置时间–>输入命令–>Ctrl + D提交任务
date:查看当前时间。设置任务,时间不可在当前时间之前
命令输入完成后按 Ctrl + D组合键提交任务即可
[root@localhost ~]# date ----查看当前时间'
2019年 11月 13日 星期三 00:45:58 CST
[root@localhost ~]# at 00:48 2019-11-13 ---设置任务执行时间'
at> pgrep -U root |wc -l > /tmp/ps.root ---输入命令(统计该时间点系统由root用户运行的进程数量,并将数值保存到/tmp/ps.root文件中)'
at> <EOT> '//按Ctrl + D组合键提交任务'
job 1 at Wed Nov 13 00:48:00 2019
[root@localhost ~]# cat /tmp/ps.root '//查看任务完成情况'
175
- atq 命令,查看待执行任务的列表
对于已经设置,但并未执行的任务,可通过atq命令查看。(已经执行的任务不会出现)
atq查看的任务列表,每个任务的序号不会变动,即便1-5个序号任务已经执行完毕,显示出的第六个未执行任务的序号也是6,而不会变成1。 - atrm 命令,删除指定编号的at任务
atrm命令用来删除指定编号的at任务,编号可通过atq查看。
删除后的at任务不会出现在atq显示结果中。
四、crontab周期性任务设置
- crond通过多个目录和文件设置计划任务,不同类型的任务由不同的配置文件来配置
- cat /etc/crontab 计划任务配置文件
- crontab -e 添加计划任务
- crontab -l 查看计划任务
- crontab -r 删除计划任务
4.1:crontab的配置文件和目录
crontab通过目录和文件设置计划任务,不同类型的任务由不同的配置文件来设置。
- /etc/crontab ----系统任务配置文件
/etc/crontab文件中设置的是维护Linux系统所需的任务,自动设置,不建议手动修改文件。
[root@localhost ~]# cat /etc/crontab '//查看系统任务配置文件'
SHELL=/bin/bash '//设置执行计划任务的Shell环境'
PATH=/sbin:/bin:/usr/sbin:/usr/bin '//定义可执行命令及程序的路径'
MAILTO=root '//将任务输出信息发送到指定用户的邮箱'
HOME=/ '//执行计划任务时使用的主目录'
- /etc/cron./ 系统默认设置cron任务的配置文件存放目录
软件包crontabs安装后,会在/etc/cron./目录下生成存放一些系统默认设置的计划任务目录,设置了系统每个小时,每一天做些什么任务
/etc/cron.hourly/ 目录下存放的是系统每小时要做的任务可执行脚本
/etc/cron.daily/ 目录下存放的是系统每天要做的任务可执行脚本
/etc/cron.weekly/ 目录下存放的是系统每周要做的任务可执行脚本
/etc/cron.monthly/ 目录下存放的是系统每月要做的任务可执行脚本
这些是可执行脚本,不是cron配置文件,crond服务通过run-parts 工具调用执行这些脚本
- /var/spool/cron/-----用户cron任务的配置文件存放目录
用户自行设置的cron计划任务将被保存到目录/var/spool/cron/中
用户使用crontab命令创建计划任务,就会在/var/spool/cron/目录下生产一个与用户名相同的文件
4.1:使用crontab命令管理用户的计划任务
命令格式: 时间周期设置 + 任务内容设置
分时日月周的取值范围和命令的说明
字段 | 说明 |
---|---|
分钟 | 取值为0到59之间的任意整数 |
小时 | 取值为0到23之间的任意整数 |
日期 | 取值为1到31之间的任意整数 |
月份 | 取值为1到12之间的任意整数 |
星期 | 取值为0到7之间的任意整数,0或7代表星期日 |
命令 | 要执行的命令或程序脚本 |