Linux实操之服务管理

文章目录

  • 一、服务(service)管理介绍:
    • service管理指令
    • 查看服务名
  • 服务的运行级别(runlevel):
    • CentOS7后运行级别说明
    • chkconfig指令介绍


一、服务(service)管理介绍:

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

service管理指令

1.service 服务名[start | stop | restart | reload | status]
2.在CentOS7.0后很多服务不再使用service ,而是systemctl(后面专门讲)
3.service指令管理的服务在/etc/init.d查看
Linux实操之服务管理_第1张图片service管理指令菜例
请使用service 指令,查着,关闭,启动network [注意:在虚拟系统演示,因为网络连接会关闭

查看服务名

方式1∶使用setup ->系统服务就可以看到全部。

setup

Linux实操之服务管理_第2张图片Linux实操之服务管理_第3张图片

方式2:/etc/init.d看到service指令管理的服务ls -I /etc/init.d

服务的运行级别(runlevel):

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

开机的流程说明:
在这里插入图片描述

CentOS7后运行级别说明

/etc/initab进行了简化,如下:
multi-user.target: analogous to runlevel 3
graphical.target: analogous to runlevel 5
#To view current default target, run:
systemctl get-default
#To set a default target,run:
systemctl set-default TARGET.target

chkconfig指令介绍

1.通过chkconfig命令可以给服务的各个运行级别设置自启动/关闭
2.chkconfig指令管理的服务在/etc/init.d查看
3.注意:Centos7.0后,很多服务使用systemctl管理(后面马上讲)
chkconfig基本语法
查看服务chkconfig --list [l grep xxx]
chkconfig 服务名 --list
chkconfig --level 5 服务名 on/off
案例演示:对network服务进行各种操作√使用细节
chkconfig重新设置服务后自启动或关闭,需要重启机器reboot生效.

systemctl管理指令
1.基本语法:systemctl [start | stop | restart | status]服务名
2. systemctl指令管理的服务在/usr/lib/systemd/system查看
3.
systemctl设置服务的自启动状态
4. systemctl list-unit-files [l grep服务名] (查看服务开机启动状态, grep可以进行过滤)
5. systemctl enable 服务名(设置服务开机启动)
6. systemctl disable 服务名(关闭服务开机启动)
4.systemctl is-enabled服务名(查询某个服务是否是自启动的)
应用案例:
查看当前防火墙的状况,关闭防火墙和重启防火墙。=> firewalld.service
systemctl status firewalld
systemctl stop firewalld

细节讨论:
1.关闭或者启用防火墙后,立即生效。[telnet 测试 某个端口即可]
2这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。
3.如果希望设置某个服务自启动或关闭永久生效,要使用systemctl [enable|disable] 服务名 . [演示]

打开或者关闭指定端口
在真正的生产环境,往往需要将防火墙打开,但问题来了,如果我们把防火墙打开,那么外部请求数据包就不能跟服务器监听端口通讯。这时,需要打开指定的端口。比如80、22、8080等,这个又怎么做呢?[示意图]
firewall指令
打开端口:firewall-cmd --permanent --add-port=端口号/协议
关闭端口: firewall-cmd --permanent --remove-port=端口号/协议
重新载入,才能生效:firewall-cmd --reload
查询端口是否开放:firewall-cmd --query-port=端口/协议
应用案例:
1.启用防火墙,测试111端口是否能 telnet,不行
![在这里插入图片描述](https://img-blog.csdnimg.cn/334d7901b69c4f09abd972290b9620e4.png

2.开放111端口

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

3.再次关闭111端口

firewall-cmd --permanent --remove-port=111/tcp;需要firewall-cmd --reload

你可能感兴趣的:(Linux,linux,运维,服务器)