- 概念理解
- 程序:保存在外部存储介质(如硬盘)中的可执行机器代码和数据的静态集合
- 进程:在cpu及内存中处于动态执行的计算机程序
- 程序和进程关系:
每个程序启动后可以创建一个或是多个进程.
进程是实现程序功能服务的实现过程和体现形式.
网站服务--------httpd程序------多个进程来接受和处理用户请求
- 查看进程
了解系统中进程的状态是对进程管理的前提,使用不同的进程多角度查看进程状态
-
- ps命令-------查看静态的进程统计信息(processes statistic)
- Ps命令是最常用的进程查看工具,用于显示当前运行的个进程完整信息的静态快照
- Ps命令选项:
- ps命令-------查看静态的进程统计信息(processes statistic)
a:显示当前终端下所有用户的所有进程信息
u:使用以用户为主的格式输出进程信息.
x:显示当前用户所在终端下的进程信息
-e:显示系统内的所有进程信息
-l:使用长格式显示进程信息
-f:使用完整的格式显示进程信息
-
-
- 常用PS命令组合
- Ps aux------以简单列表的形式显示出进程信息
- 常用PS命令组合
-
USER 用户
PID 进程号
%CPU 执行命令时候进程占用的CPU百分比
%MEM 执行命令时候进程占用的CPU百分比
VSZ 虚拟内存集(swap空间大小)
RSS 常住内存集
TTY 终端号
STAT 当前进程状态
R:runing 运行态
S:可中断睡眠态 (休眠状态)
D:不可中断睡眠态
T:停止态
Z:僵死进程
s:表示这个进程是个领导者进程(父进程)
+:该进程为后台进程
l:该进程是多线程进程
N:低优先级进程
<:高优先级进程
[]:表示这个一个内核线程
START 启动时间
TIME 运行时间
COMMAND 执行的命令行
-
-
-
- Ps -lef-----长格式显示系统中的进程信息,内容更丰富完整.
- Ps
-
-
Ps 不加任何选项代表查询当前用户会话中打开的进程
-
-
-
- Ps 结合管道符”|”
-
-
Ps aux | grep 进程名 -------过滤vim这个程序的状态
-
- Top
Top:动态实时显示进程状态信息(每个3s 刷新进程状态)
解析:
当前时间 系统已运行时间 当前登录用户数 最近5\10\15分钟平均负载
load average:0.24, 0.15, 0.19 — load average后面的三个数分别是5分钟、10分钟、15分钟的负载情况
主要看id空闲百分比 部分 判断cpu是否忙
物理内存使用率(单位是k)
total — 物理内存总量, used — 使用中的内存总量, free — 空闲内存总量,buffers — 缓存的内存量
- top命令模式下的交互命令:
- M:根据内存占用情况进行排序
- N进程按照启动时间进行排序
- h:获得top命令的在线帮助
- q:正常退出top程序
- K:结束进程交互界面,输入pid结束对应进程
PID 进程id
USER 进程所有者的用户名
PR 优先级
NI nice值。负值表示高优先级,正值表示低优先级
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR 共享内存大小,单位kb
S 进程状态。(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
%CPU 上次更新到现在的CPU时间占用百分比
%MEM 进程使用的物理内存百分比
TIME+ 进程使用的CPU时间总计,单位1/100秒
COMMAND 命令名/命令行
-
- pgrep
程序管理中对PID的查询使用比较多,比如结束一个进程需要先知道其PID,然后在杀死,Ps 查询指定程序PID的时候需要用过滤才能查看
Grep 可以直接查看指定程序的PID信息,相对比较方便.
Pgrep 选项 --------pgrep使用的命令格式
Pgrep -l 程序名称 -----查询指定程序的PID
Pgrep -u 用户名 ------查询指定用户的所有进程ID(只显示PID,不显示程序名称)
Pgrep –lu 用户名 ----查询指定用户的所有程序以及PID
-
- pstree
pstree命令可以输出linux系统中各种进程的树形结构,更好判断进程之间的关系(父子进程)
-a:列出完整命令信息
-u:列出对应的用户名
-p:列出对应的PID
Pstree -aup -----查看系统的进程树,包括进程对应的PID 用户名 完整命令
Pstree -ap ------查看指定用户的进程树信息
- 控制进程
- 启动进程
- 手动启动进程
- &(放在执行命令后面) ---将该执行命令放到后台执行
- 调度启动进程
- at------一次性计划启动进程
- Crontab ------周期性计划启动进程
- 手动启动进程
- 启动进程
-
- 改变进程的运行方式
- 挂起当前的进程
- Ctrl+Z(快捷键) ------将前台的任务调入后台暂停运行
- 查看后台的进程
- Jobs -l
- 挂起当前的进程
- 改变进程的运行方式
-
-
- 将后台的进程恢复运行
-
bg 任务编号 ------将指定的后台暂停程序在后台继续执行
fg 任务编号 -------将制定的后台暂停程序调入前台继续执行
-
- 终止进程执行
- Ctrl + c -------强制中断正在执行或是未执行完的命令
- Kill ----终止进程(kill命令给指定PID程序发出正常退出信号,如不能正常退出 -9强制退出)
- Pgrep -l 程序名 -------得到指定进程的PID
- Kill PID --------正常退出PID对应的进程
- Kill -9 PID -------不能正常退出的程序,-9强制杀死
- 终止进程执行
- Killall 进程名称-------退出同一个程序的多个进程
(vim aa.txt vim bb.txt vim cc.txt killall vim)
Killall -9 vim ------强制杀死指定进程
- Pkill ----终止进程
Pkill可以根据指定的用户 进程名 终端所运行的程序进行终止
Pgrep -l - U “zhangsan” --------查看指定用户执行的进程
Pkill -9 -U “zhangsan” -------强制关闭zhangsan用户的进程
- 计划任务管理
- at一次性任务设置
- at命令设置的计划任务是在指定时间点执行一次
- 必须开启atd系统服务
- at一次性任务设置
-
-
- 执行at一次性计划的时间以系统时间为准,必须在系统时间之后,否则无法正确设置.
- 命令
- date ----查看系统时间日期
- At 10:35 2019-02-21 -------创建10:354 2019-02-21时间点的计划任务
-
At>tail -2 /etc/passwd > /top.txt (‘>’ ‘>>’)
Crtl+d ------结束计划任务配置
-
-
-
- 验证结果
-
-
Cat /top.txt
- atq -----查看未执行的一次性计划任务
- atrm 计划任务编号 ------删除指定未执行的一次性计划任务
- at 时间 ------常见当天的一次性计划任务(没有带日期就表示当天)
-
- crontab周期性任务计划设置
(一)计划任务管理 crond
- crontab命令
- 按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作
- 属于周期性计划任务
- 主要设置文件
- 全局配置文件,位于文件:/etc/crontab
- 系统默认的设置,位于目录:/etc/cron.*/
- 用户定义的设置,位于文件:/var/spool/cron/用户名
- 管理cron计划任务
- 编辑计划任务
- crontab -e [-u 用户名]
- crontab -l [-u 用户名] 列出查看计划任务
- crontab -r [-u 用户名] 清空计划任务
crontab 任务配置的格式
- 时间数值的特殊表示方法
- * 表示该范围内的任意时间
- , 表示间隔的多个不连续时间点
- - 表示一个连续的时间范围
- / 指定间隔的时间频率
- 应用示例
- 0 17 * * 1-5 周一到周五每天17:00
- 30 8 * * 1,3,5 每周一、三、五的8点30分
- 0 8-18/2 * * * 8点到18点之间每2小时
- 0 *` */3 * * 每3天
每月28号23点59分 重启服务器
- 每天早上05:29自动开启防火墙服务
29 05 * * * /usr/bin/systemctl start firewalld.service=systemctl start firewalld
- 每个隔7天清空/ftproot/tmp
0 0 */7 * * /usr/bin/rm -rf /ftproot/tmp/*
- 每周一23:59重启服务器
59 23 * * 1 /usr/sbin/reboot
- 每周一 三 五下午23:30 使用tar命令压缩/ftp/root目录为ftproot.tar.gz
30 23 * * 1,3,5 /usr/bin/tar zcvf ftproot.tar.gz /ftp/root