70.Linux:进程管理(重点)

目录

一、基本介绍

二、进程管理常用指令

(1)显示系统执行的进程

(2)终止进程指令:kill和killall

(3)查看进程树

三、服务管理

(1)服务管理指令

(2)查看服务名

(3)服务的运行级别

(4)linux开机的流程

(5)chkconfig指令:给服务的各个运行级别设置自 关闭/启动

四、systemctl管理指令

(1)基本指令

(2)systemctl设置服务的自启动状态

(3)打开或关闭指定端口

五、动态监控进程

(1)top指令:显示正在执行的进程

(2)netstat指令:查看系统网络情况

(3)测试主机连接指令:ping


一、基本介绍

(1)每个执行的程序,都被成为一个进程,每个进程都分配一个ID号(pid,进程号)

(2)每个进程都可能以两种方式存在:前台和后台

前台:用户屏幕上可以操作的进程

后台:实际在操作,但是屏幕上无法看到的进程

(3)一般系统的服务都是以后台进程的方式存在

二、进程管理常用指令

(1)显示系统执行的进程

ps [选项]

-a:显示当前终端的所有进程
-u:以用户的格式显示进程信息
-x:显示后台进程运行的参数
-e:显示所有进程
-f:全格式

查询的结果都代表什么意思?

USER:进程执行用户

PID: 进程号

%CPU:占用CPU的百分比

%MEN:占用物理内存的百分比

VSZ:占用虚拟内存的大小

RSS:占用物理内存大小

TTY:终端

STAT:运行状态,s表示sleep休眠,r表示运行状态

START:进程的启动时间

TIME:占用的cpu时间

COMMAND:启动进程所用的命令和参数,如果过长会被截断显示

(2)终止进程指令:kill和killall

#通过进程号杀死进程
kill [选项] 进程号

#通过进程名称杀死进程,支持通配符
killall 进程名称

-9:强迫进程立刻停止

(3)查看进程树

pstree [选项]

-p:显示进程的PID
-u:显示进程的所属有用户

三、服务管理

服务本质就是进程,也叫守护进程。但是是运行在后台的,通常会用于监听某个端口,等待其他的请求。

(1)服务管理指令

#服务的管理
service 服务名 [start | stop | restart | reload | status]

#查看service指令管理的服务
在/etc/init.d查看

在CentOS7后,很多服务不再使用service,而是systemctl

实例:使用service指令,查看,关闭,启动network

这边一旦执行stop,xshell就用不了了

(2)查看服务名

#方法一:查看所有系统服务 
set

#方法二:查看service指令管理的服务
ls -l /etc/init.d

带*表示随着系统启动,自动启动。不带就需要手动启动。

怎么修改是否加*?选择那一行,按一下空格就行

按tab键可以退出

(3)服务的运行级别

linux有7种运行级别,最常用的是3和5:

级别0:系统停机状态,系统默认运行级别不能设置成0

级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录

级别2:多用户状态(没有NFS),不支持网络

级别3:完全的多用户状态(有NFS),登录后进入控制台命令模式

级别4:系统未使用,保留

级别5:X11控制台,登录后进入图形GUI模式

级别6:系统正常关闭并重启,默认运行级别不能设置成6

multi-user.target对应级别3
graphical.target对应级别5


#获取默认级别
systemctl get-default

#设置默认级别
systemctl set-default 上述级别对应的英文

(4)linux开机的流程

开机=》BIOS=》/boot=》运行第一个进程,systemd进程1=》确定运行级别=》运行级别对应的服务

(5)chkconfig指令:给服务的各个运行级别设置自 关闭/启动

自 关闭/启动:上述我们说了有7个级别,我们可以设置某个服务在具体某个级别是启动的还是关闭的

#chkconfig指令管理的服务在/etc/init.d中可以查看
#在Cento7以后,很多服务使用systemctl管理
#修改后需要重启


#查看chkconfig指令管理的服务
chkconfig --list [|grep xxx]


#设置某个服务在5级别下开启/关闭
chkconfig --level 5 服务名 on/off

四、systemctl管理指令

在Cento7以后,很多服务使用systemctl管理。

(1)基本指令

#systemctl指令管理的服务在/usr/lib/systemd/system查看

systemctl [start | stop | restart | status] 服务名

启动,关闭只是临时生效,要想永久生效:

systemctl [enable | disable] 服务名

 

(2)systemctl设置服务的自启动状态

#查看服务器开机启动状态,grep 用于过滤
systemctl list-unit-files [| grep xxx ]

#设置服务开机启动
systemctl enable 服务名

#关闭服务开机启动
systemctl disable 服务名

#查询某个服务是否是自启动的
systemctl is-enabled 服务名

#查看服务当前状态
systemctl status 服务名

(3)打开或关闭指定端口

#查看是否连接得上
telnet ip地址 端口号

#打开端口
firewall-cmd --permanent --add-port=端口号/协议

#关闭端口
firewall-cmd --permanent --remove-port=端口号/协议

#重新载入才能生效
firewall-cmd --reload

#查询端口是否开放
firewall-cmd --query-port=端口号/协议

#查看端口情况
netstat -anp | more

我们先打开防火墙,然后cmd里面连接是连不上的:

我们打开111端口,并且查询一下,并且重新连接:

我们telnet 192.168.200.130 111就可以了。

 

关闭同理。

五、动态监控进程

(1)top指令:显示正在执行的进程

top与ps命令很像,都是显示正在执行的进程。区别在于:top在执行一段时间可以更新正在运行的进程

top [选项]

-d 秒数:指定top命令每隔多少秒更新,默认3秒
-i:使top命令不显示任何闲置或者僵尸进程
-p:通过指定监控进程ID来仅仅监控某个进程的状态


#交互操作说明:top后,输入以下指令自定义查看(注意大小写)
P:以CPU使用率排序,默认就是此项
M:以内存使用率排序
N:以PID排序
u:查看用户的进程情况。输入u后按回车,再输入用户名即可。
k:结束指定进程。输入k后按回车,再输入要结束的进程ID即可。再输入9强制删除
q:退出top

我们解释一下这些是什么意思:

1:当前时间。    2:系统使用了多久。  3:系统有多少用户。    4:系统使用情况,负载值。(如果超过70%就要注意了)       

Tasks:任务情况,其中zombie表示僵尸进程,所谓僵尸进程就是该进程已经死了,但是么有释放

%Cpu:CPU使用情况。us:用户占用的cpu。  sy:系统占用的cpu。  id:空闲的cpu。   

KiB Mem:内存占用情况。total:总共的内存。  free:未使用。   used:已使用。   buff/cache:缓存大小

KiB Swap:交换分区情况。

(2)netstat指令:查看系统网络情况

netstat [选项]

-an:按一定顺序排列输出
-p:显示哪个进程在调用

1:协议。  2:本地地址。  3:外部地址

所谓本地地址对应的是linux系统里的地址。外部地址对应的是windows系统里的地址。  

如果我们用xshell连接linux就会有另外一个连接,当我们断开连接,状态会先从ESTABLISHED变成TIME_WAIT。过一会才会消失。

(3)测试主机连接指令:ping

是一种网络连接检测工具,主要用于检测远程主机是否正常。

ping IP地址

猜你喜欢

转载自blog.csdn.net/qq_40594696/article/details/114024491