进程
是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。
一、进程管理的作用
- 判断服务器的健康状态
top [选项] #查看系统健康状态
-d: 秒数,指定top命令每隔几秒钟更新,默认是3秒;
-h: 显示交互模式的帮助;
-P: 以CPU使用率排序,默认是此项;
-M: 以内存的使用率的排序;
-N: 以PID排序;
-q: 退出top。
pstree [选项] #查看进程树
-p: 显示进程的PID;
-u: 显示进程的所属用户。
其中显示的内容主要包括系统当前时间、系统的运行时间、当前登录了多少个用户、系统在1分钟、5分钟、15分钟之前的平均负载、系统的进程总数、正在运行的进程数、睡眠的进程、正在停止的进程、僵尸进程、用户模式占用的CPU百分比、系统模式占用的CPU百分比、改变过优先级的用户进程占用的CPU百分比、空闲CPU所占百分比等。
- 查看系统中所有进程
ps -aux #查看系统中所有进程,使用BSD操作系统格式
ps -le #查看系统中所有进程,使用Linux标准命令格式
各字段含义:
- USER:表示该进程是由哪个用户产生的;
- PID:进程的ID号;
- %CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源;
- %MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;
- VSZ:该进程占用虚拟内存的大小,单位KB;
- RSS:该进程占用实际物理内存的大小,单位KB;
- TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-256代表虚拟终端;
- STAT:进程状态。常见的状态有:
R
(运行)、S
(睡眠)、T
(停止状态)、s
(包含子进程)、+
(位于后台); - START:该进程的启动时间;
- TIME:该进程占用CPU的运算时间;
- COMMAND:产生此进程的命令名。
- 杀死进程
- kill命令
kill -l #查看可用的进程信号
常见信号:
1:SIGHUP,该信号让进程立即关闭,然后重新读取配置文件之后重启
9:SIGKILL,用来立即结束程序的运行,本信号不能被阻塞、处理和忽略。一般用于强制终止进程
15:SIGTERM,正常结束进程的信号,kill命令的默认信号
如:kill -9 进程号
- killall命令,按照进程名杀死进程
killall [选项][信号] 进程名
-i: 交互式,询问是否要杀死某个进程
-I: 忽略进程名的大小写
- pkill命令,按照进程名终止进程
pkill [选项][信号] 进程名
-t: 终端号,按照终端号踢出用户
二、工作管理
- 把进程放入后台
如:tar -zcf etc.tar.gz /etc & #这一种放入后台之后还在后台运行
top (执行时,按下ctrl+z快捷键) #这一种放入后台是暂停的
- 查看后台的工作
jobs [-l] #-l:显示工作的PID
#注:“+” 代表最近一个放入后台的工作,也是工作恢复时默认恢复的工作,“-” 代表倒数第二个放入后台的工作
- 将后台暂停的工作恢复到前台执行
fg %工作号 #%可以省略
- 把后台暂停的工作恢复到后台执行
bg %工作号 #若后台恢复的命令和前台有交互,则不能恢复到后台执行
三、系统资源查看
vmstat
命令监控系统资源
vmstat [刷新时延][刷新次数]
dmesg
开机时内核检测信息
如:dmesg | grep CPU #检测CPU的信息
cat /proc/cpuinfo #也可以查看CPU信息
free
命令查看内存使用状态
free [-b|-k|-m|-g]
'''
-b: 以字节为单位显示
-k: 以KB为单位显示,默认是以KB为单位显示
-m: 以MB为单位显示
-g: 以GB为单位显示
'''
uptime
命令
uptime #显示系统的启动时间和平均负载,w命令也可以看到这个数据
uname
命令查看系统与内核相关信息
uname [选项]
'''
-a: 查看系统所有相关信息
-r: 查看内核版本
-s: 查看内核名称
'''
- 判断当前系统的位数
如:file /bin/ls
- 查询当前Linux系统的发行版本
lsb_release -a
lsof
命令列出进程打开或使用的文件信息
lsof [选项]
'''
-c: 字符串,只列出以字符串开头的进程打开的文件
-u: 用户名,只列出某个用户的进程打开的文件
-p: pid,列出某个PID进程打开的文件
'''
四、系统定时任务
crond
服务管理与访问控制
service crond restart
chkconfig crond on
- 用户的
crontab
设置
crontab [选项]
'''
-e: 编辑crontab定时任务
-l: 查询crontab任务
-r: 删除当前用户所有的crontab任务
使用格式:* * * * * 执行的任务
如:45 20 * * * 命令(在20点45分执行命令)
0 17 * * 1 命令 (在每周一的17点0分执行命令)
'''
项目 | 含义 | 范围 |
---|---|---|
第一个 * | 一个小时当中的第几分钟 | 0-59 |
第二个 * | 一天当中的第几小时 | 0-23 |
第三个 * | 一个月当中的第几天 | 1-31 |
第四个 * | 一年当中的第几月 | 1-12 |
第五个 * | 一周当中的星期几 | 0-7,其中0和7都表示星期日 |
特殊符号 | 含义 |
---|---|
* | 代表任何时间 |
, | 代表不连续的时间,如:“0 8,12 * * * 命令”表示在每天的8点0分,12点0分都执行一次命令 |
- | 代表连续的时间范围,如:“0 5 * * 1-6 命令”表示周一至周六的凌晨5点0分执行命令 |
* / n | 代表每隔多久执行一次,如:“*/10 * * * * 命令”表示每隔10分钟就执行一次命令 |