进程管理
就是linux的任务管理器
进程的真正执行者是线程
父进程——子进程
父进程先启动---->子进程再启动。是由父进程给子进程分配资源。
子进程先结束----->父进程负责回收资源,然后父进程才会结束,这时候子进程会变成僵尸进程。
查看静态进程的统计信息
ps -aux或ps -elf
-a:显示当前终端上的所有进行进程,包括其他用户的进程。
-u:列出进程的用户。
-x:显示所有终端的进程信息。
user:进程的所属用户
PID:进程的id号
%CPU:进程占用cpu的百分比
%MEM:进程占用的物理内存的百分比
VSZ:进程占用的虚拟内存量(KB)
RSS:进程占用的物理内存量(KB)
TTY:表示启动的终端
?:表示不是从终端打开的进程
STAT:进程状态
进程状态:
S:休眠状态 D:不可中断的休眠状态 R:运行中的状态 T:停止状态 Z:僵尸状态
TIME:进程占用CPU的时间
COMMAND:进程启动的命令
可以和管道符一起使用精确查找
例:ps -aux | grep “httpd”
ps -elf
-e:显示系统内所有进程的信息
-l:长格式显示进程信息
-f:完整格式显示进程信息
F:内核分配给进程的标记
S:进程状态
UID:启动这些进程的用户
PID:进程pid号
PPID:进程的父进程的进程号
C:进程生命周期中cpu的使用率
PRI:进程的优先级(数字越大优先级越低)
NI:谦让值(决定优先级的大小)
ADDR:进程在内存中地址
SZ:进程被换出,需要swap空间的大致大小
WCHAN:显示休息进程的系统函数名
STIME:进程的启动时间
TTY:启动的终端
查看动态的进程统计信息
top
第一行:任务队列信息
02:38:40:系统时间 up 23 min:系统已运行时长 2 users :当前登录用户数
load average:0.00,0.01,0.05:系统负载,单位时间内系统处理的任务数,后面三个数值分别为1分钟,5分钟,15分钟。
第二行:进程信息
total:当前系统的总进程数
running:运行中的进程数
sleeping:休眠中的进程数
stopped:中止的进程数
zombie:僵尸进程数
第三行:CPU的使用情况
us:用户占用cpu的大小
sy:内核进程占用cpu的大小
ni:优先级调度占用cpu的大小
id:空闲cpu的百分比
wa:磁盘读写性能
hi:1分钟的cpu使用率
si:5分钟的cpu使用率
st:15分钟的使用率
第四行:内存信息
total总内存空间
free空闲内存
used已用内存
buff/cache物理内存和交换内存的缓冲区总和
第五行:swap(交换分区的信息)
五大负载
CPU负载 内存负载 磁盘负载 网络负载 进程负载
根据进程名找出进程号
pgrep(结合kill命令一块使用)
-a:显示进程名和pid
-c:仅显示匹配进程的数量,其他都不显示
-f:匹配进程名和参数
kill:杀进程
kill只是一个信号,传递信号给内核,执行中止程序的命令
kill -9:表示进程被终止,需要立即退出
kill -15:告诉进程现在要被中止,请自行停止推出
列出后台进程的状态信息
jobs
-l:显示所有后台进程的pid号
-n:仅显示最近的后台进程
-r:仅显示正在运行的后台进程
-s:仅显示已停止的后台进程
命令行结尾加上&就是后台运行
有些服务是依赖一些相关的运行程序包,启动的时候一定要后台启动
ctrl+z:放到后台并且停止运行
fg:把后台的程序调度到前台执行
创建定时任务
crontab
* * * * *
分(0-59) 时(0-23) 日(1-31) 月(1-12) 周(0-7,0和7就是星期天)
*:表示范围内的任意时间
1,3,5 * * * *:表示多个不连续时间,一分钟执行一次,三分钟执行一次,五分钟执行一次
1-5 * * * *:表示1-5分钟都会执行
*/10 * * * *:表示每10分钟执行一次
创建定时任务:crontab -e
为指定用户创建定时任务:crontab -e -u 用户名
查看定时任务:crontab -l
清空所有定时任务:crontab -r