Linux 操作系统 014-服务管理

2023-12-21 08:12:05

Linux 操作系统 014-服务管理

本节关键字:Linux、服务管理
本节相关指令:service、systemctl、chkconfig、firewall

服务的介绍

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

服务的运行级别

Linux系统有7中运行级别(runlevel):常用的是级别3和级别5

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

开机流程说明

开机 -> BIOS -> /boot -> system进程1 -> 运行级别 -> 运行级对应的服务

CentOS运行级别说明

在/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 adefault target, run:设置运行级别
systemctl set-default TARGET.target

服务的相关指令

service指令
  1. service 服务名 [start | stop | restart | reload | status]
  2. 在CentOS7.0后 很多服务不再使用service,而是systemctl
  3. service指令管理的服务在 /etc/init.d查看
chkconfig指令
  1. 通过chkconfig命令可以给服务的各个运行级别设置自启动/关闭
  2. chkconfig指令管理的服务在 /etc/init.d 查看
  3. 注意:CentOS7.0后,很多服务使用systemctl管理

chkconfig基本语法

查看服务 chkconfig --list [ | grep xxx ]
chkconfig 服务名 --list
chkconfig --level 5 服务名 on/off

案例:对network服务进行各种操作,在init 3关闭自启动
chkconfig --level 3 network off
chkconfig --level 3 network on

使用细节:chkconfig重新设置服务后自启动或关闭,需要重启机器reboot生效

systemctl指令

基本语法:systemctl [ start | stop | restart | status ] 服务名
systemctl指令管理的服务在 /usr/lib/systemd/system 查看

systemctl设置服务的自启动状态

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

应用:查看当前防火墙的状况,关闭防火墙和重启防火墙
systemctl list-unit-files | grep firewalld
systemctl is-enable firewalld

使用细节

  • 关闭或者启用防火墙后,立即生效 [telnet测试某个端口即可]
  • 这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置
  • 如果希望设置某个服务自启动或关闭永久生效,要使用 systemctl [enable | disable] 服务名
firewall指令

打开或者关闭指定端口,在真正的生产环境,往往需要将防火墙打开,那么外部请求数据包就不能跟服务器监听端口通讯。这时,需要打开指定的端口,比如80,22,8080等,这个怎么操作呢?

firewall指令

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

案例1、启用防火墙,测试111端口是否能telnet
systemctl start firewalld
telnet IP port

案例2、开放111端口
firewall-cmd --permanent --add-port=111/tcp
firewall-cmd --reload

案例3、再次关闭111端口
firewall-cmd --permanent --remove-port=111/tcp
firewall-cmd --reload

文章来源:https://blog.csdn.net/qq_45157350/article/details/135034380
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。