Linux 进程(2)服务管理指令

服务管理 又叫 service管理

服务的本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求(比如防火墙,远程登陆SSHD)

所以我们又称之为守护进程,是一个很重要的点

比如,一个程序的客户端,想去连接他在linux里的服务,需要先找到该服务的端口,而这个端口再后面连着的,就是监听这个端口的后台服务/守护进程

你去找哪个端口,本质上也是找的端口监听的那一个系统服务

客户端 - - - 端口| 服务/守护进程 |

相关管理指令

  • service指令
bash 复制代码
service [服务名] [选项]
选项 作用 解释
start 启动服务 要让服务跑起来
stop 停止服务 服务有问题需要关闭
restart 重启服务 更改配置文件让服务重新加载
reload 平滑重载配置 改完配置后不想中断服务让服务继续运行
status 查看服务状态 字面意思,查看各种信息

不过CentOS7以后许多服务不再使用service,而是systemctl

service指令仍管理的服务可以在/etc/init.d/查看

示例:

指令示例

bash 复制代码
 1. service network status	#查看网络服务的运行状况 service network stop		#关闭网络服务
  • 查看服务名
    /etc/init.d只能看到一部分服务,想看到全部就输入setup
    然后会进入一个蓝色背景的界面,上面有两个选项
    上面的是系统服务和验证配置,下面两个是运行工具和退出

选择系统服务后直接回车便可看到系统有的服务

带星号的就是可以自启动的

切到退出和确定要按tab

  • 服务的运行级别
    linux有7种运行级别
级别 状态 通常名称
0 系统关机状态,该模式不能为默认模式,否则会无法正常启动 runlevel 0
1 单用户工作状态,root权限,用于系统维护,无法远程登陆 emergency.target:runlevel 1
2 多用户状态,没有NFS,不支持网络 rescue.target:runlevel 2
3 多用户状态,有NFS,登陆后进入控制台命令行模式 multi-user.target:runlevel 3
4 系统未使用,保留 runlevel 4
5 登陆后进入图形化界面 graphical.target:runlevel 5
6 系统正常启动并重启,该模式不能为默认模式 runlevel 6

最常用的是3和5

开机的流程大概就是

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

在/etc/inittab中可以看到相关信息 #在CentOS7中那些运行级别被简化为3和5

systemctl get-default #这条指令可以查看当前的运行级别

systemctl set-default TARGET.target 更改运行级别

示例

bash 复制代码
systemctl set-default graphical.target	#更改为图形化界面
  • chkconfig指令
    通过该指令可以给服务的各个运行级别设置自启动/自关闭
    比如一个服务,你可以设置为,他在运行级别1是自启动的,但在2是自关闭
    chkconfig指令管理的服务可以在/etc/init.d查看
    基本语法
bash 复制代码
chkconfig --list	 #查看服务
chkconfig --level [级别] [服务名] on/off	#让某一个服务在某个运行级别选择是自启动还是关闭

示例

bash 复制代码
chkconfig --level 3 network off	
使network服务在运行级别3时处于关闭状态
chkconfig --list | greq network
只查看network的各运行级别的自启动状态
  • systemstl指令
    现在常用的管理指令
    基本语法
bash 复制代码
systemctl [选项] [服务名]
选项 作用
start 启动服务
stop 停止服务
restart 先停止再启动
status 查看服务状态

systemctl管理的服务可以在/usr/lib/systemd/system查看

bash 复制代码
ls -l /usr/lib/systemd/system

stop和start这样的指令可以更改服务的状态,但只是临时生效,重启后就会消失,如果想要永久生效

还是要使用systemctl [enable/disable] [服务名]这样的指令

systemctl设置服务的自启动状态:

bash 复制代码
systemctl list-unit-files	#查看各个服务的开机启动状态,可使用greq过滤
systemctl enable [服务名]	#设置服务开机自启动
systemctl disable [服务名]	#设置服务关闭
systemctl is-enabled [服务名]	#查询某个服务是否是自启动

systemctl list-unit-files查看时显示的状态有三个,enabled已设置自启动,disabled未设置自启动,static静态无法直接启用

示例

bash 复制代码
查看防火墙的状态,关闭和启用防火墙
systemctl list-unit-files | greq firewalld	#查看 
systemctl enable firewalld		#启用
systemctl disable firewalld		#关闭
查看防火墙是否为自启动
systemctl is-enabled firewalld

注 因为CentOS 7运行级别只有3和5,所以没有指定运行级别的命令,指令是同时作用于3和5的

  • 防火墙
    系统中,防火墙大概是在端口前面,有请求发过来是先经过防火墙的,如果防火墙没把端口打开,请求就过不去,打开了才能过去
    在真正的生产环境中我们往往需要把防火墙打开,但是打开后外面的所有请求都过不了了可不行,这时候就得单独打开指定的端口,比如80,22,8080等

firewall指令

基本语法

bash 复制代码
firewall-cmd --permanent --add-port=[端口号/协议]		#打开某个端口
firewall-cmd --permanent --remove-port=[端口号/协议]	#关闭某个端口
firewall-cmd -reload					#每次更改需要这样重新载入才能生效	
firewall-cmd --query-port=[端口号/协议]			#查询某个端口是否开放

打指令的时候一定要把端口号和协议名全都打全

bash 复制代码
netstat -anp | more
复制代码
用于查看系统网络连接状态,也可顺便查看端口对应的协议

示例

bash 复制代码
开放111端口,为tcp协议
firewall-cmd --permanent --add-port=111/tcp
相关推荐
不怕犯错,就怕不做2 小时前
Linux中的IS_ENABLED 函数实战使用demo
linux·驱动开发·嵌入式硬件
罗小爬EX2 小时前
Arthas 实战指南(二):profiler生成火焰图实战
java·arthas·火焰图
源远流长jerry2 小时前
软件定义网络 SDN 核心技术深度解析:从概念到实践
linux·网络·架构
橙露2 小时前
Linux 服务器性能排查:CPU / 内存 / 磁盘 / 网络一键定位
linux·服务器·网络
nvvas2 小时前
IDEA安装并且使用Roo Code工具
java·ide·人工智能
暴力求解2 小时前
Linux---命名管道与共享内存(一)
linux·运维·服务器
小鸡食米2 小时前
Linux 防火墙
linux·运维·服务器
ICT系统集成阿祥2 小时前
BGP邻居状态机详解
运维·服务器
海盗猫鸥2 小时前
「Linux工具」自动化构建make/Makfile
linux