一.进程
1.基本介绍
在Linux中每一个执行的程序都称之为进程,每一个进程都会分配一个进程号(PID)。进程以前台和后台两种方式存在,前台进程就是我们可以在屏幕上操作的,后台进程我们无法在屏幕上看到。
程序是静态的,进程是动态的,程序 run 起来就变成进程了。
2.ps 指令
ps 指令可以查看当前系统中有哪些进程,以及这些进程的执行状况。
可以直接使用 ps 指令,但是得到的信息有限:
ps
我们可以搭配一些选项来写:
-a | 显示当前终端的所有进程信息 |
-u | 以用户的格式显示进程信息 |
-x | 显示后台进程运行的参数 |
我们可以将上面的选项一起写:
ps -aux
解释一下第一行的表头的意思:
USER | 进程执行用户 |
PID | 进程号 |
%CPU | 进程占用cpu的百分比 |
%MEM | 进程占用物理内存的百分比 |
VSZ | 进程占用虚拟内存的大小,单位是KB |
RSS | 进程占用物理内存的大小,单位的KB |
TTY | 终端 |
STAT | 运行状态,S-睡眠,s-该进程是会话的先到过程,N-进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止 |
START | 执行的开始时间 |
TIME | 占用的cpu时间 |
COMMAND | 启动进程所用的命令和参数,过长会被截断 |
3.查看父进程
我们可以通过以全格式显示当前所有的进程来查看进程的父进程。
ps -ef
-e 显示所有进程,-f 全格式
对于第一行表头,只解释上面没有的部分:
PPID | 父进程的进程号 |
C | CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高 |
4.终止进程
若是某个进程执行一半需要停止时,或是已消耗了很大的系统资源时,此时可以考虑停止该进程,我们就要使用终止进程指令来结束这个进程。
基本语法:
kill [选项] 进程号
killall 进程名称
常用选项:-9:强迫进程立即停止。
5.进程树
以树的形式显示进程。
基本语法:
pstree [选项]
常见选项:
-p | 显示进程PID |
-u | 显示进程所属用户 |
二.服务管理
1.介绍
服务(service)本质就是进程,运行在后台,通常会监听某个端口,等待其他程序的请求,因此又称其为守护进程。
service指令管理的服务在 /etc/init.d 查看:
ls -l /etc/init.d/
service指令管理的服务还可以使用指令查看:
setup
注:前面有*指的是这个服务在系统开启后自动开启,没有* 要手动开启。
2. chkconfig指令
可以通过该指令给服务的各个运行级别设置自启动或关闭。chkconfig指令管理的服务再 /etc/init.d 查看。运行级别是什么请看:Linux 实用指令_虚拟机init3命令-CSDN博客
基本语法:
//查看服务
chkconfig --list
chkconfig 服务名 --list
//设置自启动
chkconfig --level 级别 服务名 on/off
注意,设置完自启动后要重启系统才能生效。
3.systemctl 指令
在Centos7.0后,很多服务不使用chkconfig管理,而是使用systemctl管理。systemctl 指令管理的服务在 /usr/lib/systemd/system 查看。
基本语法:
systemctl [start|stop|restart|status] 服务名
使用这种方式设置的自启动或关闭只是临时生效,重启了就没了,如果想要永久生效,要使用:
systemctl [enable|disable] 服务名
设置自启动:
//查看服务开机启动状态
systemctl list-unit-files
//设置自启动
systemctl enable 服务名
//关闭自启动
systemctl disable 服务名
//查询某个服务是否为自启动
systemctl is-enabled 服务名
4. firewall 指令
该指令主要用于打开或关闭指定端口。
基本语法:
//打开端口
firewall-cmd --permanent --add-port=端口号/协议
//关闭端口
firewall-cmd --permanent --remove-port=端口号/协议
//查询端口是否开放
firewall-cmd --query-port=端口号/协议
//重新载入才能生效
firewall-cmd --reload
查看端口号和协议的方法:
netstat -anp
三.动态监控
1.top指令
与ps指令相似,都可以查看正在执行的进程,与ps不同的是top会更新正在运行的进程。
基本语法:
top [选项]
选项:
-d 秒数 | 指定top命令每隔几秒更新,默认3秒 |
-i | 使top不显示任何闲置或者僵死进程 |
-p | 通过指定监控进程ID来仅仅监控某个进程的状态 |
在进入top指令界面后,我们可以使用一些操作来让显示发生一定的变化:
P | 以 CPU 使用率排序,默认就是此项 |
M | 以内存的使用率进行排序 |
N | 以 PID 排序 |
q | 退出 top |
u | 输入用户名即可查看这个用户的进程 |
k | 输入要结束的进程ID |
2.监控网络状态
基本语法:
netstat [选项]
-an | 按一定顺序排列输出 |
-p | 显示哪个进程在调用 |