介绍
服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如(mysqld,sshd 防火墙等),因此我们又称为守护进程,是linux中非常重要的知识点。
- service服务名[start|stop|restart|reload|status]
- 在CentOs7.0后,很多服务不再使用service,而是systemctl。
- service指令管理的服务在/etc/init.d查看
-
service管理指令案例 -
请使用service指令,查看,关闭,启动network【在虚拟系统中演示,因为网络连接会关闭】 -
-
查看服务名: -
方式1:使用setup -> 系统 就可以看到全部。(前面带*的表示,服务会开机启动,不带的需要手动启动) setup -
方式2:/etc/init.d看到service指令管理的服务 ls -l /etc/init.d
服务的运行级别(runlevel):
- linux 系统中有7种运行级别:常用的是级别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 cruuent default target,run:(查看当前运行级别) systemctl get-default #To set a default target,run:(设置默认运行级别) systemctl set-default TARGET.target - chkconfig指令
- 介绍
- 通过chkconfig命令可以给服务的各个运行级别设置自 启动/关闭
- chkconfig指令管理的服务在/etc.init.d查看
- 注意:centos7.0后,很多服务使用systemctl管理。
-
chkconfig基本语法 -
查看服务 chkconfig --list[| grep xxx] -
-
-
chkconfig 服务名 --list -
chkconfig --level 5 服务名 on/off(将某个服务在某个运行级别设置为自启动/关闭) chkconfig --level 5 network off chkconfig --level 3 network off -
使用细节 chkconfig 重新设置服务后自启动或关闭,需要重启机器reboot生效. -
systemctl管理指令
- 基本语法:systemctl [start|stop|restart|status]服务名
- systemctl 指令管理的服务在/usr/lib/systemd/system查看
- systemctl list-unit-files [ | grep服务名] (查看服务开机启动状态,grep可以进行过滤)
- systemctl enable 服务名(设置服务开机启动)
- systemctl disable 服务名(关闭服务开机启动)
- systemctl is-enabled 服务名(查询某个服务是否是自启动的)
- 应用案例:
- 查看当前防火墙的状态,关闭防火墙和重启防火墙。
systemctl status firewalld(可以简写firewalld.service) systemctl stop firewalld systemctl start firewalld 一个小技巧:找到防火墙大概的名字:
- 关闭或者启用防火墙后,立即生效。
- 这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。
- 如果希望设置某个服务自启动或关闭永久生效,要使用systemctl [enable|disable] 服务名。
打开或者关闭指定端口
在真正的生产环境,往往需要将防火墙打开,但问题是,如果把防火墙打开,那么外部请求数据包就不能跟服务器监听端口通讯。这时,需要打开指定的端口。
-
firewall指令 -
打开端口:firewall-cmd --permanent --add-port=端口号/协议 -
关闭端口:firewall-cmd --permanent --remove-port=端口号/协议 -
重新载入,才能生效:firewall-cmd --reload -
查询端口是否开放:firewall-cmd --query-port=端口号/协议 -
应用案例:
-
启用防火墙,测试111端口是否能telnet -
开放111端口 firewall-cmd --permanent --add-port=111/tcp;然后重载:firewall-cmd --reload -
再次关闭111端口。
firewall-cmd --permanent --remove-port=111/tcp;然后重载:firewall-cmd --reload 查看服务使用的是哪种协议: netstat -anp | more
|