1 介绍
服务(service)本质就是进程,但是时运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如(mysqld,sshd 防火墙等),因此我们又称为守护进程,是Linux中非常重要的知识点
2 service管理指令
service 服务名 [start| stop| restart| reload | status]
在CentOS7.0后很多服务不再使用service,而是systemctl
service指令管理的服务在 /etc/init.d查看
如:
3 查看服务名
1)查看全部的系统服务
指令:
setup
2)查看service指令管理的服务
指令:
ls -l /etc/init.d/
3)解读:为什么linux很多服务以d结尾
- d代表deamon 守护进程
- Linux的大多数服务就是用守护进程
- 守护进程是运行在Linux服务器后台的一种服务程序
- 它周期地执行某种任务或等待处理某些发生的事件
- 比如:xinetd提供网络服务,sshd提供ssh登录服务,httpd提供web服务
4 服务的运行级别
linux系统有七种运行级别(runlevel):常用的是级别3和5
- 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
- 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录
- 运行级别2:多用户状态(没有NFS),不支持网络
- 运行级别3:完全的多用户状态(有NFS),登录后进入控制台命令行模式
- 运行级别4:系统未使用,保留
- 运行级别5:X11控制台,登陆后进入图形GUI模式
- 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
5 开机的流程说明:
6 CentOS7运行级别说明
在/etc/initab,进行了简化如下
//运行级别3
multi-user.target:analogous to runlevel 3
//运行级别5
graphical.target:analogous to runlevel 5
7 查看当前运行级别
systemctl get-default
8 修改系统的运行级别
如:修改为3号运行级别
systemctl set-default multi-user.target
9 设置服务自启动或关闭自启动 - chkconfig指令
1)介绍:
- 1.通过chkconfig命令可以给服务在各个运行级别设置自启动/关闭自启动
- 2.chkconfig指令管理的服务在 /etc/init.d查看
- 注意:CentOS7.0后,很多服务使用systemctl管理
2)基本语法
//查看指定的服务
chkconfig --list [| grep 服务名]
//查看服务
chkconfig 服务名 --list
//设置服务在运行级别为5的时候,为自启动/或关闭自启动,5可以改为自己定义的级别
chkconfig --level 5 服务名 on/off
3)案例:
将network服务在运行级别3,设置为不自启动状态
10 服务管理指令-systemctl
1)语法:
//服务启动、停止、重启、状态
systemctl [start | stop |restart |status ] 服务名
注:systemctl指令管理的服务都在/usr/lib/systemd/system下,可以进行查看
ls -l /usr/lib/systemd/system
2)systemctl设置服务的自启动状态
语法:
//查看服务开机启动状态,grep可进行过滤
systemctl list-unit-files [|grep 服务名]
//设置服务开机启动
systemctl enable 服务名
//(关闭服务开机启动)关闭和开启都是默认设置的3和5两级别
systemctl disable 服务名
//查询某个服务是否是自启动的
systemctl is-enabled 服务名
3)systemctl设置服务运行状态
语法:
//查看服务运行状态
systemctl status 服务名
//停止服务运行
systemctl stop 服务名
//启动服务
systemctl start 服务名
4)案例:
a.得到防火墙的服务名称
ls -l /usr/lib/systemd/system | grep fire
b.查看firewalld.service服务的自启动状态
systemctl list-unit-files | grep firewalld.service
c.查看firewalld.service服务是否为自启动
systemctl is-enabled firewalld.service
d.查询firewalld.service服务的运行状态
systemctl status firewalld
11 打开或者关闭指定端口-firewall
在真正的生产环境,往往需要将防火墙打开,来了,如果我们把防火墙打开,那么外部请求数据包就不能给服务器监听端口通讯。,这时,需要打开指定的端口。比如80,22,8080 该怎么做呢
1)可以使用firewall指令
- 开启防火墙
#设置开机启用防火墙
systemctl enable firewalld.service
#启动防火墙
systemctl start firewalld
- 关闭防火墙
#设置开机禁用防火墙
systemctl disable firewalld.service
#关闭防火墙(有时间限制)
systemctl stop firewalld
- 检查防火墙状态
systemctl status firewalld
- 打开端口
firewall-cmd --permanent --add-port=端口号/协议
- 关闭端口
firewall-cmd --permanent --remove-port =端口号/协议
- 无论是关闭还是开启端口都需要重新载入防火墙才能生效
firewall-cmd --reload
- 查询端口是否开放
firewall-cmd --query-port=端口/协议
- 查看防火墙中开发的端口
firewall-cmd --list-all
2)案例
启用防火墙,测试111端口是否能telnet
- 开放111端口
- 再次关闭111端口
- 查询111端口状态