本节关键字: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 -> 运行级别 -> 运行级对应的服务
在/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
查看服务 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 [ start | stop | restart | status ] 服务名
systemctl指令管理的服务在 /usr/lib/systemd/system 查看
systemctl设置服务的自启动状态
应用:查看当前防火墙的状况,关闭防火墙和重启防火墙
systemctl list-unit-files | grep firewalld
systemctl is-enable firewalld
打开或者关闭指定端口,在真正的生产环境,往往需要将防火墙打开,那么外部请求数据包就不能跟服务器监听端口通讯。这时,需要打开指定的端口,比如80,22,8080等,这个怎么操作呢?
打开端口: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