Linux进程管理

Linux进程管理

关于进程 process

什么是进程?

What is a process?  什么是进程
#一个正在运行的程序,父进程--子进程,进程中包含线程
#独立的,资源不共享
#资源占用大,启动慢,销毁慢
Process states  进程状态

静态查看进程状态

pidof 进程名字  #查看进程pid号
pgrep 进程名字  #查看进程pid号

ps :process nsapashot
ps   查看前台系统进程
ps a   查看系统里所有终端进程
ps au    显示进程拥有者
ps aux    查看系统中所有运行的进程
[root@linux-server ~]# ps -ef    #显示进程之间的父子关系
参数解释:
-e 显示所有进程
-l 长格式显示
-f 完整格式
-elf 长格式完整显示所有进程

UID       用户ID
PID       进程ID
PPID      父进程ID
C         CPU占用率
STIME     开始时间
TTY       开始此进程的TTY----终端设备
TIME      此进程运行的总时间
CMD       命令名

[root@linux-server ~]# ps aux 
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
============================================================================
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优先级较低的进程

端口

查看端口信息

ss -nplt   查看端口信息

netstat -lntp

yum install lsof  #安装软件包
lsof -i:80   #端口号,这能查看带端口的进程

查网络进程和正在监听的端口

#查网络进程和正在监听的端口
yum -y install net-tools   #安装软件包
netstat -lntp   查看端口信息

参数详解:
-a  显示全部的进程
-u  显示udp
-n  以数字的形式显示协议名称
-t   tcp
-p:显示进程的名称和pid
-l :只显示正在被监听的端口

参数解释:
recv-Q:网络接收队列。表示收到的数据已经在本地接收缓冲,但是还有多少没有被进程取走,recv()如果接收队列Recv-Q一直处于阻塞状态,可能是遭受了拒绝服务 denial-of-service 攻击。
send-Q:网路发送队列。对方没有收到的数据或者说没有Ack的,还是本地缓冲区.如果发送队列Send-Q不能很快的清零,可能是有应用向外发送数据包过快,或者是对方接收数据包不够快。
Foreign Address:与本机端口通信的外部请求

扩展

lsof命令 用于查看你进程打开的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所以需要root用户执行。

-a:列出打开文件存在的进程;
-c<进程名>:列出指定进程所打开的文件;
-g:列出GID号进程详情;
-d<文件号>:列出占用该文件号的进程;
+d<目录>:列出目录下被打开的文件;
+D<目录>:递归列出目录下被打开的文件;
-n<目录>:列出使用NFS的文件;
-i<条件>:列出符合条件的进程(协议、:端口、 @ip )
-p<进程号>:列出指定进程号所打开的文件;
-u:列出UID号进程详情;
-h:显示帮助信息;
-v:显示版本信息
w  #看已经登陆到终端的进程信息,远程登陆会有ip 地址
who    #显示当前所有登陆用户的信息。
whomi   #打印当前有效的用户ID对应的名称
[root@localhost ~]# whoami
root

部分参数解释:
USER –登录用户名.
TTY –登录用户使用的终端名.
FROM –登录用户来源的主机名或IP地址.
LOGIN@ –用户登录时间.
WHAT –用户当前的进程及选项/参数。

动态查看进程状态

top、htop

top  #动态显示信息,三秒刷新一次。
shift p 

image-20191107154654276

在工作中必须监控的东西 load average(平均负载)等待cpu处理的队列长度 也是个数。
1分钟   第一个数字
5分钟   第二个数字
15分钟  第三个数字
======================
计算cpu负载:load average的三个值: 0.10, 0.16, 0.12,分别除cpu的个数,得出的值,如果值大于1那么那时候的负载高。

top操作

[root@linux-server ~]# top
h|? 帮助
> 往下翻页
< 往上翻页
M 按内存排序
P 按cpu排序
q 退出   
z 彩色显示
W 保存
=====================================
PR   优先级
VIRT 进程使用的虚拟内存总量,单位kb。
RES  进程使用的、未被换出的物理内存大小,单位kb。
SHR  共享内存大小,单位kb

在这里插入图片描述

us: 用户态进程占用cpu
ni: nice值
id: cpu空闲率
wa: cpu等待,等待输入/输出的进程占用的 CPU 百分比。如果使用率过高,表示硬盘该换了
hi:硬中断,请求插队
si:软中断
st:停止

进程优先级 nice

renice -n -10  pid   #修改进程优先级
nice 值越高:表示优先级越低,例如+19,该进程容易将CPU 使用量让给其他进程。
nice 值越低:表示优先级越高,例如-20,该进程更不倾向于让出CPU。
nice 值的取值范围是 -20 到 19

进程控制

按pid杀死进程

kill,
pkill  #杀进程后面跟名字缺点会误杀带有关键字的进程
语法: kill 信号 PID   #信号也是进程间通信的一种方式

[root@linux-server ~]# kill -l   #查看所有信号
-1   HUP  重新加载进程或者重新加载配置文件,PID不变   
-9   KILL 强制杀死
-15  TERM 正常杀死(这个信号可以默认不写)
-18  CONT 激活进程
-19  STOP 挂起进程

线程:

一个进程内部可以有一个线程,也可以有多个;

线程资源共享,速度快

启动快,销毁快

一个线程崩溃,可能会导致一个进程崩溃

CPU:

​	并发一个时间段内完成的事

​	并行:同一个时刻,可以做多少事

​	中断

​	协程(异步):节省资源

在这里插入图片描述

常用命令

1.查看当前CPU负载

[root@linux-server ~]# uptime 
 17:35:01 up 16:02,  3 users,  load average: 0.00, 0.02, 0.05

2.查看内存使用

[root@linux-server ~]# free -m 
              total        used        free      shared  buff/cache   available
Mem:           1984         154        1508           8         321        1632
Swap:          2047           0        2047

-m:单位M
df -h    #查看磁盘容量

3.linux启动过程

1加电,2加载bios设置,3加载grub,4加载内核系统到内存当中,
5加载配置文件,6加载内核模块,7完成相应的初始化工作和启动相应的服务,
8启动系统进程,9出现登录界面,10开机启动完成

4.查看系统的版本和内核

[root@linux-server ~]# cat /etc/redhat-release  #查看版本
CentOS Linux release 7.4.1708 (Core)
[root@linux-server ~]# uname -a #看查正在运行的内核版本
Linux linux-server 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@linux-server ~]# uname -r  #查看内核版本
3.10.0-693.el7.x86_64

5.修改主机名

[root@linux-server ~]# hostnamectl set-hostname  xxxx   #主机名,修改完之后断开与终端连接,然后在重新连接即可。
查看主机名
[root@linux-server ~]# hostname

6.跳板机(堡垒机)的作用

1 身份验证
2 屏幕录制,防止员工对服务器做有害的操作
3 批量操作 一次性操作2-200台机器

7.安装过操作系统吗?怎么安装?

1.小批量设备,使用U盘安装
(调整bios参数从U盘启动)
raid
2.大批量设备搭建PXE装机系统,从网络批量安装
无人值守,批量安装
(调整网络启动项,从网络启动)

[root@linux-server ~]# hostname

6.跳板机(堡垒机)的作用**
1 身份验证
2 屏幕录制,防止员工对服务器做有害的操作
3 批量操作 一次性操作2-200台机器

7.安装过操作系统吗?怎么安装?

1.小批量设备,使用U盘安装
(调整bios参数从U盘启动)
raid
2.大批量设备搭建PXE装机系统,从网络批量安装
无人值守,批量安装
(调整网络启动项,从网络启动)

上传下载

# yum install -y lrzsz
上传
# rz
下载
# sz 文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值