服务(service)管理

36 阅读6分钟

服务(service)管理

服务本质是进程

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

service管理指令

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

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

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

image.png

chkconfig 管理指令

  1. 通过chkconfig命令可以给服务的哥哥运行级别设置自 启动/关闭
  2. chkconfig指令管理的服务再/etc/init.d 查看
  3. 注意:centos7后,很多服务使用systemctl 管理
  4. chkconfig重新设置服务后自启动或关闭,需要重启机器
# 查看服务
chkconfig --list [| grep xxx]
# 查询指定的服务
chkconfig 服务名 --list
# 设置指定的服务级别
chkconfig --level 5(这个5指运行级别) 服务名  on/off
# 注意:
# chkconfig重新设置服务后自启动或关闭,需要重启机器

案例演示

对network服务,进行各种操作,吧network在3运行级别,关闭自启动

chkconfig --level 3 network off  # 关闭
chkconfig --level 3 network on   # 开启

systemctl 管理命令

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

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

基本语法

# 查看服务开机启动状态,grep 可以进行过滤
systemctl [start|stop|restart|status] 服务名称
start    # 启动 
stop     # 停止 
restart  # 重启
status   # 状态

# 永久设置
systemctl enable 服务名        # 设置服务开机启动
systemctl disable 服务名称     # 关闭服务开启动
systemctl is-enabled 服务名称  # 查询某个服务是否自自动

# 临时设置 立即生效
systemctl stop 服务名称    # 重启会失效

# 永久关闭firewall防火墙服务
systemctl disable firewalld 
# 临时关闭firewall防火墙服务
systemctl stop firewalld

image-20230113161347003.png

image-20230113161452686.png

firewalld 防火墙指令

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

# 实例:
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --remove-port=8080/tcp
firewall-cmd --reload
firewall-cmd --query-port=8080/tcp

查看服务名

方式1

使用setup -> 系统服务,就可以看到全部

setup

image-20230113153543508.png

带[*]的就是自启动的

使用空格键可以修改为[ ]和 [*]

image-20230113153437451.png

方式2:/etc/inittad 看到service指令管理的服务

  • 服务的运行级别(runlevel)

Linux系统又7种运行级别(runlevel):常用的是级别3和5 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录 运行级别2:多用户状态(没有NFS),不支持网络 运行级别3:完全的多用户状态(有NFS),登录后进入控制台命令行模式 运行级别4:系统未使用,保留 运行级别5:X11控制台,登录后进入图形GUI模式 运行级别6:系统正常关闭并重启,默认运行级别不能设置为6,否则不能正常启动

动态监控

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

top [选项]

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

# top [选项]后输入
P   # 以cpu的使用率排序,默认就是此项
M   # 以内存的使用率排序
N   # 以PID使用率排序
q   # 退出top
U 用户名 # 检控关于该用户的所有进程

k PID # 杀死这个PID的进程
# 这里还需要输入
9  # 表示强制杀死这个PID的进程

image.png

top - 16:20:30 up 25 min, 1 user, load average: 0.00, 0.01, 0.04

内容含义
16:20:30当前系统时间
up 24 min系统运行时间
1 user当前系统登录用户数
load average: 0.00, 0.01, 0.04系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值

Tasks: 157 total, 1 running, 156 sleeping, 0 stopped, 0 zombie

内容含义
Tasks: 157 total进程总数
1 running正在运行的进程数
156 sleeping睡眠的进程数
0 stopped停止的进程数
0 zombie僵尸进程数

firewall-cmd %Cpu(s): 0.2 us, 0.0 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

内容含义
0.2 us用户空间占用CPU百分比
0.0 sy内核空间占用CPU百分比
0.0 ni用户进程空间内改变过优先级的进程占用CPU百分比
99.8 id空闲CPU百分比
0.0 wa等待输入输出的CPU时间百分比
0.0 hi硬中断(Hardware IRQ)占用CPU的百分比
0.0 si软中断(Software Interrupts)占用CPU的百分比
0.0 st用于有虚拟cpu的情况,用来指示被虚拟机偷掉的cpu时间

KiB Mem : 2027892 total, 1104936 free, 468928 used, 454028 buff/cache

内容含义
2027892 total物理总内存
1104936 free使用的物理内存总量
468928 used空闲内存总数
454028 buff/cache用作内核缓存的内存量

KiB Swap: 2097148 total, 2097148 free, 0 used. 1380716 avail Mem

内容含义
2097148 total交换区总量
2097148 free使用交换机总量
0 used空闲交换区总量
1380716 avail Mem缓冲的交换区总量

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

列名含义
PID进程id
USER进程所有者用户名
PR优先级
NInice值。负值表示高优先级,正值表示低优先级
VIRT进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR共享内存大小,单位kb
S进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU上次更新到现在的CPU时间占用百分比
%MEM进程使用的物理内存百分比
TIME+进程使用的CPU时间总计,单位1/100秒
COMMAND命令名/命令行

交互操作(区分大小写)

参数含义
?显示在top当中可以输入的命令
P以CPU的使用资源排序显示
M以内存的使用资源排序显示
N以pid排序显示
T由进程使用的时间累计排序显示
k给某一个pid一个信号,可以用来杀死进程(9)
r给某个pid重新定制一个nice值(即优先级)
q退出top(用ctrl+c也可以退出top)

监听网络状态

  • 查看系统网络情况netstat
netstat [选项]
# 选项说明
-an  # 按一定顺序排列输出
-p   # 显示哪个进程再调用

# 案例:
netstat -anp | grep ssh

开机流程:

image.png