服务(service)管理
服务本质是进程
服务(service)本质就是进程
,但是是运行在后台的
,通常都会监听某个端口,等待其它程序的请求,比如(mysqld,sshd 防火墙等),因此我们又称之为守护进程
,是Linux中非常重要的知识
service管理指令
-
service 服务名 [start | stop | restart | reload | status]
-
在CentOS7后很多服务不再使用service,而是,systemctl
-
service指令管理的服务在
/etc/init.d
查看
chkconfig 管理指令
- 通过chkconfig命令可以给服务的哥哥运行级别设置自 启动/关闭
- chkconfig指令管理的服务再
/etc/init.d
查看 - 注意:centos7后,很多服务使用systemctl 管理
- 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
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
带[*]的就是自启动的
使用空格键可以修改为[ ]和 [*]
方式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的进程
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 | 优先级 |
NI | nice值。负值表示高优先级,正值表示低优先级 |
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