基本介绍:
-
在linux中,每个执行的程序都称为一个进程,每一个进程都分配一个ID号(pid,进程号)。
-
每个进程都可能以两种方式存在。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕无法看到的进程,通常使用后台方式执行
-
一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束
-
显示系统执行的进程
ps命令是用来查看系统中,有哪些正在执行,以及他们的状况。可以不加任何参数
ps显示的信息选项: PID:进程识别号 TTY:终端机号 TIME:此进程所消CPU时间 CMD:正在执行的命令或者进程名
ps -a:显示当前终端的所有进程信息
ps -u:以用户的格式显示进程信息
ps -x:显示后台进程运行的参数
一般组合使用:ps -aux | more
USER | PID | %CPU | VSZ | RSS | TTY | STAT | START | TIME | COMMAND |
---|---|---|---|---|---|---|---|---|---|
进程执行用户 | 进程号 | 占用CPU百分比 | 占用虚拟内存(KB) | 占用物理内存(KB) | 终端 | 运行状态,s表示sleep休眠,r:运行状态 | 执行开始的时间 | 占用的CPU时间 | 进程名,执行该进程的指令 |
指令:ps -aux | grep xxx 过滤看有没有sshd服务:ps -aux | grep sshd
实例:以全格式显示当前的所有进程,查看进程的父进程
查看sshd的父进程:ps -ef | grep sshd
ps -ef是以全格式显示当前的所有进程
-e 显示所有格式 -f 全格式
ps -ef | grep xxx
UID:用户ID
PID:进程ID
PPID:父进程ID
C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
STIME:进程启动的时间
TTY:完整的终端时间
TIME:CPU时间
CMD:启动进程所用的命令和参数
终止进程 kill 和 killall
介绍:若是某个进程执行到一般需要停止时,或是已消耗了很大的计算资源,可以考虑停止该进程。使用kill命令来完成此任务
基本语法:
kill [选项] 进程号
killall 进程名称 子进程也会被终止
-9 :表示强迫进程立即停止
查看进程树pstree
基本语法:pstree [选项],可以更加直观的来看进程信息
pstree -p 显示进程的PID
pstree -u 显示进程的所属用户
服务(service)管理
介绍:服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如(mysql、sshd、防火墙等),因此我们又称为守护进程
-
service管理指令
-
service 服务名 [strat | stop | restart | reload | status] 【表示可选】
-
在CentOS7.0后 很多服务不再使用service,而是 systemctl
-
还用service指令管理的服务在 /etc/init.d 查看 :ls -l /etc/init.d/
查看所有服务名:setup
查看当前运行级别:systemctl get-default
-
systemctl 管理指令
-
基本语法:systemctl [start|stop|restart|status] 服务名
-
systemctl 指令管理的服务在 /usr/lib/systemd/system 查看
-
systrmctl list-unit-files [ | grep 服务名] (查看服务开机启动状态,grep可以进行过滤)
-
systemctl enable 服务名(设置服务开机启动)
-
systemctl disable 服务名(关闭服务开机启动)
-
systemctl is-enable 服务名 (查询某个服务是否是自启动的)
应用案例:查看当前防火墙的状况,关闭防火墙和重启防火墙
systemctl list-unit-files | grep firewalld.service
systemctl status firewalld
systemctl stop firewalld
systemctl start firewalld
这种只是临时生效,如果希望设置某个服务器自启动或关闭永久生效,要使用 systemctl [enable|diaable] 服务名
-
打开或者关闭指定端口
firewall指令
打开端口:firewall-cmd --permanent --add-port=端口号/协议
打开端口:firewall-cmd --permanent --remove-port=端口号/协议
重新载入,才能生效:firewall-cmd --reload
查询端口是否开放:firewall-cmd --query-port=端口/协议
动态监控进程
top与ps命令相似。都用来显示正在执行的进程,top与ps最大的不同在于top在执行一段时间可以更新正在运行的进程。
top [选项]
-d | -i | -p |
---|---|---|
指定top命令每隔几秒更新,默认3秒 | 使top不显示任何闲置或者僵死进程 | 通过指定监控进程ID来仅仅监控某个进程的状态 |
交互操作说明:
操作 | 功能 |
---|---|
P | 以CPU使用率排序,默认就是此项 |
M | 以内存的使用率排序 |
N | 以PID排序 |
q | 退出top |
监控网络状态
netstat [选项]
-an 按一定顺序排列输出
-p 显示哪个进程在调用
-
检测主机连接命令ping
网络检测工具,它主要是用检测远程主机是否正常,或是两主机间的网线或网卡故障