Linux学习(七)进程和服务管理

一、进程管理

1.ps命令(不加任何参数)

在这里插入图片描述

2.也可以加下面的参数,以显示更全面的信息

Linux学习(七)进程和服务管理_第1张图片
Linux学习(七)进程和服务管理_第2张图片

System V 展示风格
USER:用户名称
PID:进程号
%CPU:进程占用 CPU 的百分比
%MEM:进程占用物理内存的百分比
VSZ:进程占用的虚拟内存大小(单位:KB)
RSS:进程占用的物理内存大小(单位:KB)
TT:终端名称,缩写 .
STAT:进程状态,其中 S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R- 正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
STARTED:进程的启动时间
TIME:CPU 时间,即进程使用 CPU 的总时间
COMMAND:启动进程所用的命令和参数,如果过长会被截断显示

3.也可以配合管道命令来查询

比如我看看有没有 sshd 服务
在这里插入图片描述

4.以全格式显示当前所有的进程

要求:以全格式显示当前所有的进程,查看进程的父进程。

# -e:显示所有进程 -f:全格式
ps -ef | grep mysql

在这里插入图片描述

主要有以下的参数:
UID:用户 ID PID:进程 ID PPID:父进程 ID
C:CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算,执行优先级会降低;数值越小,表 明进程是 I/O 密集型运算,执行优先级会提高
STIME:进程启动的时间 TTY:完整的终端名称 TIME:CPU 时间
CMD:启动进程所用的命令和参数

5.终止进程 kill 和 killall

若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程。使用 kill 命令来完 成此项任务。

#kill       [选项]   进程号(功能描述:通过进程号杀死/终止进程)
#killall   进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)

使用例子:

#终止多个gedit 
killall gedit
#如果加了 -9 ,就是强制杀死
kill (-9) 进程号

6.查看进程树 pstree

#可以更加直观的来看进程信息
pstree  [选项]  

在这里插入图片描述
Linux学习(七)进程和服务管理_第3张图片

二、服务管理

服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysqld , sshd 防火墙等),因此我们又称为守护进程,是 Linux 中非常重要的知识点。

1.service 管理指令(centos7以后几乎用不着,centos6已经被官方废弃了,读者可跳过这一段)

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

service  服务名  [start | stop | restart | reload | status]

service 指令管理的服务在 /etc/init.d 查看,使用命令ls -l /etc/init.d我们发现在centos8中service已经没什么命令了
在这里插入图片描述
看他的readme文件,我们发现centos的开发者告诉我们service命令已经废弃了,推荐systemctl命令
Linux学习(七)进程和服务管理_第4张图片

通过 chkconfig 命令可以给服务的各个运行级别设置自 启动/关闭(chkconfig 指令管理的服务也在 /etc/init.d 查看)

#1)查看服务:chkconfig --list [| grep xxx]
#2)chkconfig 服务名 --list
#3)chkconfig --level  5 服务名 on/off

操作如下:
Linux学习(七)进程和服务管理_第5张图片
Linux学习(七)进程和服务管理_第6张图片

2.systemctl 管理指令(重点!!!!)

#基本语法: 
systemctl [start | stop | restart | status] 服务名

systemctl 指令管理的服务在 /usr/lib/systemd/system 查看,我们发现基本上centos8的服务都在这里
Linux学习(七)进程和服务管理_第7张图片
设置服务的自启动状态

#查看服务开机启动状态,  grep 可以进行过滤
systemctl list-unit-files [ |grep 服务名] 
#(设置服务开机启动)
systemctl enable 服务名   
#(关闭服务开机启动) 
systemctl disable 服务名
#(查询某个服务是否是自启动的)
systemctl is-enabled 服务名    

比如我要关防火墙,并且禁止开机自启,具体操作如下,先查询服务名:
在这里插入图片描述
执行下面的语句,再查看状态:

systemctl stop firewalld
systemctl disable firewalld

在这里插入图片描述
如果防火墙是开的,但是我们想开放端口,操作如下:

#打开端口:           
firewall-cmd  --permanent  --add-port=端口号/协议
#关闭端口:           
firewall-cmd  --permanent  --remove-port=端口号/协议
#重新载入,才能生效
firewall-cmd  --reload
#查询端口是否开放:       
firewall-cmd  --query-port=端口/协议

我们发现111这个端口是处于监听的状态
Linux学习(七)进程和服务管理_第8张图片
因为linux设置了防火墙,所以window的telnet 192.168.2.128 111访问不了
Linux学习(七)进程和服务管理_第9张图片
经过下面的命令,111端口将会被开放

firewall-cmd  --permanent  --add-port=111/tcp  ;   
firewall-cmd  --reload

在这里插入图片描述
这次window(其他主机)就访问到了linux虚拟机的端口
Linux学习(七)进程和服务管理_第10张图片

3、动态监控进程

top 与 ps 命令很相似。它们都用来显示正在执行的进程。Top 与 ps 最大的不同之处,在于 top 在执行一段时间可以 更新正在运行的的进程。

top [选项]

Linux学习(七)进程和服务管理_第11张图片

Linux学习(七)进程和服务管理_第12张图片

当上面的三个负载值加起来除以三大于0.7就说明电脑内存比较紧张了,进入到这个监控页面,是可以继续输入按键进行排序操作的。具体请看下面的这张表:
Linux学习(七)进程和服务管理_第13张图片

比如我想终止内存占用最大的进程
top:输入此命令,按回车键,查看执行的进程。输入 m,找到内存占用最大的进程的进程号,然后输入“k”回车,再输入要结束的进程 ID 号

4.监控网络状态

#查看系统网络情况 netstat
netstat  [选项]

#请查看服务名为 sshd 的服务的信息。 
netstat  -anp  |  grep  sshd

#检测远程主机是否正常,或是两部主机间的网线或网卡故障
ping ip

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

Linux学习(七)进程和服务管理_第14张图片

你可能感兴趣的:(Linux虚拟机,linux)