Linux服务启动判断
1.什么是进程,为什么要看进程?
程序运行期间就会产生进程,查看进程就是为了判断某个程序是否启动
当然判断一个服务是否启动有3种方式:
- 查看进程
- 查看端口
- 查看状态
1.1 查看进程
1.1.1 静态查看进程
方式一
[root@linux-server ~]# ps aux #aux前面可以加-或不加
参数解释:
ps :process nsapashot
a 只能查看系统里面运行的所有终端进程
u 显示进程拥有者
x 显示系统内所有进程
f 显示进程之间的父子关系
[root@linux-server ~]# tty
? 表示这个进程开启的时候没有占用终端
0 表示没有
方式二
[root@linux-server ~]# ps -ef
参数解释:
-e 显示所有进程
-l 长格式显示
-f 完整格式
实际应用
PID进程的编号,一个PID对应一个进程
查看指定PID
[root@linux-server ~]# ps aux | grep 指定的服务名
1.2 查看端口
查网络进程和正在监听的端口
方式一
[root@linux-server ~]# yum -y install net-tools #安装
[root@linux-server ~]# netstat -lntp
参数详解:
-a 显示全部的进程
-u 显示udp
-n 以数字的新式显示协议名称
-t tcp
-p:显示进程的名称和pid
-l :只显示正在被监听的端口
方式二
[root@linux-server ~]# yum install lsof #安装
[root@linux-server ~]# lsof -i:80 #端口号,这能查看带端口的进程
1.3 查看服务状态
systemctl status 服务名
active(running)代表启动
1.4 动态查看进程
两种动态查看方式:top 和 htop 区别在于htop美观。
方式一 top
[root@linux-server ~]# top #动态显示信息,三秒刷新一次。
方式二 htop 需要安装
[root@linux-server ~]# yum install -y epel*
[root@linux-server ~]# yum install -y htop
[root@linux-server ~]# htop
1.4.1 动态查看相关操作
[root@linux-server ~]# top
1 查看CPU个数从0开始
h|? 帮助
> 往下翻页
< 往上翻页
M 按内存排序
P 按cpu排序
q 退出
z 彩色显示
W 保存
实际工作中用动态查看实时监控CPU的平均负载
load average(平均负载)等待cpu处理的队列长度也是个数。
1分钟 第一个数字
5分钟 第二个数字
15分钟 第三个数字
如何判断CPU负载过高
计算cpu负载:load average的三个值分别除cpu的个数,得出的值,如果值大于1那么那时候的负载高。
进程优先级 nice
nice 值越高:表示优先级越低,例如+19,该进程容易将CPU 使用量让给其他进程。
nice 值越低:表示优先级越高,例如-20,该进程更不倾向于让出CPU。
进程状态了解
Sl 以线程的方式运行
Ss s进程的领导者,父进程
R+ +表示是前台的进程组
S< <优先级较高的进程
SN N优先级较低的进程
1.5 给进程发送信号
kill 按pid杀进程
pkill 按进程名杀进程
语法: kill 信号 PID #信号也是进程间通信的一种方式,pkill用法一样
[root@linux-server ~]# kill -l #查看所有信号
-1 HUP 重新加载进程或者重新加载配置文件,PID不变
-9 KILL 强制杀死
-15 TERM 正常杀死(这个信号可以默认不写)
-18 CONT 激活进程
-19 STOP 挂起进程
1.6 服务挂后台运行jobs
[root@linux-server~]# sleep 7000 & # & 让命令或者程序后台运行
[root@linux-server ~]# sleep 8000 # ctrl+z 把程序放到后台(这方法会让程序在后台暂停)
[root@linux-server ~]# jobs #查看后台的工作号
%程序的工作号,代表指定第几个后台程序
[root@linux-server ~]# bg %2 #让暂停的程序在后台运行
[root@linux-server ~]# fg %1 #将后台的程序调到前台
[root@linux-server ~]# kill -9 %1 #通过kill杀死进程