5.Linux进程管理

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杀死进程
原文地址:https://www.cnblogs.com/eba001/p/14286900.html