Linux 操作系统 014-服务管理
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 5 | X11控制台,登录后进入图形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指令
- service 服务名 [start | stop | restart | reload | status]
- 在CentOS7.0后 很多服务不再使用service,而是systemctl
- service指令管理的服务在 /etc/init.d查看
chkconfig指令
- 通过chkconfig命令可以给服务的各个运行级别设置自启动/关闭
- chkconfig指令管理的服务在 /etc/init.d 查看
- 注意: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设置服务的自启动状态
- systemctl list-unit-files [ | grep 服务名 ](查看服务开机启动状态, grep可以进行过滤)
- systemctl enable 服务名 (设置开机启动)
- systemctl disable 服务名 (关闭服务开机启动)
- 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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!