文章目录
1.进程
1.1 定义
进程是已启动的可执行程序的运行实例,是程序运行的过程,动态的,有生命周期及运行状态,是一个正在运行的程序,包括主进程和子进程。
一个进程中至少包括一个线程。
1.2 进程和线程的区别:
1.进程是独立的执行实体,拥有独立的资源,而线程是在进程内部运行的,共享进程的资源。
2.创建和销毁进程的开销较大,而线程的创建和销毁相对较轻量级。
3. 进程间的切换开销较大,线程间的切换开销较小。
4.进程之间通信和同步需要使用操作系统提供的机制,线程间通过共享内存等方式进行通信和同步。
5.进程间相互独立,一个进程的崩溃不会影响其他进程,而线程共享同一个进程的资源,一个线程的错误可能导致整个进程崩溃。
简而言之,进程是独立的,资源独立,切换开销大;线程是共享的,资源共享,切换开销小,一个线程的损坏会导致进程的崩溃,进程崩溃不会影响其他进程。
2.静态查看进程
命令1:ps aux
参数解释:
ps :process nsapashot
a 只能查看系统里面运行的所有终端进程
u 显示进程拥有者
x 显示系统内所有进程
f 显示进程之间的父子关系
nice值:表示进程优先级,nice值越高,表示优先级越低
修改优先级:renice -n nice值 pid
[root@localhost ~]# ps aux
USER: #运行进程的用户
PID: #进程ID
%CPU: #CPU
%MEM: #内存占用率
VSZ 进程占用的虚拟内存大小。
RSS 占用的物理内存大小
STAT: #进程状态 ---了解? 表示没有占用终端
R 运行
S 可中断睡眠 Sleep
D 不可中断睡眠
T 停止的进程
Z 僵尸进程
X 死掉的进程
START: #进程的启动时间
TIME: #进程占用CPU的总时间
COMMAND: #进程文件,进程名进程状态--了解
Sl 以线程的方式运行
Ss s进程的领导者,父进程
R+ +表示是前台的进程组
S< <优先级较高的进程
SN N优先级较低的进程
查看tty,查看当前所在终端:
[root@linux-server ~]# tty
? 表示这个进程开启的时候没有占用终端
命令2:ps -ef
参数解释:
-e 显示所有进程
-l 长格式显示
-f 完整格式
UID 用户ID
PID 进程ID
PPID 父进程ID
C CPU占用率
STIME 开始时间
TTY 开始此进程的TTY----终端设备
TIME 此进程运行的总时间
CMD 命令名
指定查看单个进程:
ps -ef | grep nginx #查看nginx的进程
ps -ef | grep nginx | grep -v grep #查询结果不显示grep一行的信息
获取pid:
命令:pgrep、pidof
pgrep nginx #获取nginx的pid
pidof nginx
查看端口:
命令1:ss -nplt | grep pid
n:显示协议,端口号
p:显示服务名称
t:tcp协议
命令2:
#查网络进程和正在监听的端口
[root@linux-server ~]# netstat -lntp
参数详解:
-a 显示全部的进程
-u 显示udp
-n 以数字的形式显示协议名称
-t tcp
-p:显示进程的名称和pid
-l :只显示正在被监听的端口
命令3:
yum install lsof #安装软件包
lsof -i :22 #端口号,这能查看带端口的进程
#注意:端口号只有整数,范围是从0 到65535
参数解释:
FD:文件描述符,应用程序通过文件描述符识别该文件。
DEVICE:指定磁盘的名称
SIZE:文件的大小
常用小命令:
常用命令:w,who,whoami
[root@linux-server ~]# w #看已经登陆到终端的进程信息,远程登陆会有ip 地址
部分参数解释:
USER –登录用户名.
TTY –登录用户使用的终端名.
FROM –登录用户来源的主机名或IP地址.
LOGIN@ –用户登录时间.
WHAT –用户当前的进程及选项/参数。
查看当前CPU负载:uptime
查看内存使用:free -m
查看系统的版本和内核:
cat /etc/redhat-release #查看版本或cat /etc/centos-release
uname -a #看查正在运行的内核版本
uname -r #查看内核版本
修改主机名: hostnamectl set-hostname xxxx
查看主机名: hostname
3.动态查看进程
3.1查看进程
命令:top ,htop(需要安装)
动态显示进程信息,每三秒钟刷新一次
[root@linux-server ~]# top
h|? 帮助
> 往下翻页
< 往上翻页
M 按内存排序
P 按cpu排序
q 退出
z 彩色显示
W 保存
=====================================
PR 优先级
VIRT 进程使用的虚拟内存总量,单位kb。
RES 进程使用的、未被换出的物理内存大小,单位kb。
SHR 共享内存大小,单位kbus: 用户态进程占用cpu
ni: nice值
id: cpu空闲率
wa: cpu等待,等待输入/输出的进程占用的 CPU 百分比。如果使用率过高,表示硬盘该换了
hi:硬中断,请求插队
si:软中断
st:停止
3.2 杀死进程
命令:kill、pkill
语法:kill 信号值 pid
参数:kill -l #查看所有信号
-1 HUP 重新加载进程或者重新加载配置文件,PID不变
-9 KILL 强制杀死
-15 TERM 正常杀死(这个信号可以默认不写)
-18 CONT 激活进程
-19 STOP 挂起进程
进程状态解释--了解:
+:表示运行在前台的进程
S+:休眠状态
T+:暂停,挂起状态
s:父进程
3.3 作业控制
作业控制指的是控制正在运行的进程的行为。比如,用户可以挂起一个进程或者放到后台去运行,等一会儿再继续执行该进程。
命令:sleep:把程序放到后台运行
jobs:查看后台的工作号
bg %[ 工作号 ]或bg [ 工作号 ]:把前台的程序放到后台运行
fg %[ 工作号 ]:把后台的程序放到前台运行
Ctrl+z:让放在后台的程序暂停
总结
本文介绍了怎样查看进程信息,包括静态查看进程、动态查看进程及常用的小命令等。