目录
前言
💪每篇一句话
今天比昨天更美好。
👏博客主页🎉 懿 然
🙏文章为个人笔记,若其中如有内容不规范或讲解有误区的地方还请各位指正,谢谢大家!😉
欢迎各位🔎点赞👍评论 📝收藏⭐️,
👋Linux学习之路
本章主要讲解对于服务的认识以及该如何管理。
🎄冲冲冲🎄
1.服务分类
1.1RPM包默认安装的服务
- 经过二进制编译的安装包
- 安装简单,相对比源码包灵活性差,看不到源代码
- 默认安装的服务:linux系统默认为RPM安装,所以服务经过RPM安装同样为默认服务
# 例如:windows安装软件部分仅仅是一款应用程序,其中部分既可以安装为程序,也可以安装成为系统服务。
1.独立服务
- Linux当中大部分都为独立服务
- 服务存于内存当中,用户访问可直接调取服务
- 优:服务访问响应速度快
- 缺:在系统当中服务越多占用内存资源越多。
2.基于xinetd服务
- 服务本身为独立服务,存于内存中
- 没有任何功能,唯一在xinetd后面有其他被管理服务,被管理服务称为基于xinetd服务
- 用户访问xinetd当中某一服务需通过xinetd代理去访问
- 优:被管理服务并不占用系统资源
- 缺:响应速度慢
1.2源码包安装的服务
- 可看到源代码,用户可自定义
- 安装复杂,过程中的报错不易排查
1.3启动与自启动
服务启动:
在当前系统中让服务运行,并提供功能
服务自启动:
自启东是指让服务在系统开机或重启动之后,随着系统的启动而自启动服务
#列如:
Windows:
- 通过服务状态可查看当前服务启动/未启动
- 重启系统某个服务是否自启由启动类型决定
- 自动:系统重启服务跟随自启
- 手动:系统启动手动打开关闭
- 禁用:禁止使用此服务
1.4查看已安装服务
RPM包安装的服务
命令格式:chkconfig [选项] [服务名]
chkconfig --list
#查看服务自启状态,可以看到所有RPM包安装的服务
# Chkconfig –list 只能查看自启动服务,且是RPM包安装的服务
列如:
- [root@localhost ~]# chkconfig --list
# 开:不能确定服务是已经运行的,只能代表系统重启该服务会自启
# 0-6:运行级别,系统进入2、3、4、5运行级别此服务才会自启
源码包安装的服务
查看服务的安装位置,一般是/usr/local/下
- [root@localhost ~]# ps aux | grep network
#查看某服务状态
1.5RPM\源码包安装服务之后的区别
1.安装之前:
rpm是通过编译,安装简单
源码包可看到源代码,用户可自定义,安装复杂
2.安装之后:
安装位置:
RPM默认位置: 源码包:
配置文件:/etc/ /usr/local/
启动脚本:/etc/rc.d/init.d/
卸载方式:
Rpm -e 包名 # 因安装位置不固定,-e代替了手动查找删除步骤
源码包 /usr/local/删除对应程序名称文件
1.6注意事项
注意:无法对源码包使用service、chkconfig等命令
原因:在使用service重启某项服务时系统自动在/etc/rc.d/init.d查看有没有匹配的服务
2.RPM服务的管理-独立服务管理
RPM包默认安装路径:
#/etc/ric.d/init.d/与/etc/init.d/同为启动脚本且内容相同
#/etc/xinetd.config、/etc/xinetd.d都为基于xinetd服务的文件
# 上述为绝大多数的服务安装默认位置,部分服务安装有特定位置。
2.1独立服务的启动
- 服务启动标准方式:通过绝对路径找到相关服务名,紧跟选项
- 通过service简化操作,同绝对路径作用相同
# service命令为红帽开发的专属命令,其他操作系统将无法使用
- Service –status -all
列出系统所有已安装的服务状态包括正在运行、已启动等
2.2独立服务的自启动
1.chkconfig [--level 运行级别] [独立服务名] [on|off]
2.修改/etc/rc.d/rc.local文件
3.使用ntsysv命令管理自启动
#linux最小化安装默认没有安装ntsysv
# yum provides ntsysv #查看ntsysv的软件包名
# yum -y install ntsysv #安装ntsysv
# 执行ntsysv
#可手动启动某项服务
#同时支持独立服务、基于xinetd的服务启动,ntsysv为红帽专有命令,其他系统不一定能够使用。
4.推荐使用
修改/etc/rc.d/rc.local
Ntsysv为红帽独有技术,其他系统不一定支持
3.RPM服务的管理-基于xinetd服务
# xinetd 超级守护进程
chkconfig --list #查看所有RPM安装的服务状态
问题:未找到xinetd相关服务
原因:默认未安装
1.安装xinetd与telnet
[root@localhost~] # yum -y install xinetd #安装xinetd服务
[root@localhost~] # chkconfig --list #再次查看所有RMP安装的服务
在这里利用telnet举例:
[root@localhost~] # yum -y install telnet -server #安装telnet服务端
# telnet-server 这里指的是远程服务端,远程客户端是默认已安装
[root@localhost~] # chkconfig --list #再次查看xinetd中的服务
[root@localhost~] # netstat -tlun #查看端口状态
此时并没有开启telnet23端口
2.基于xinetd服务的启动
修改文件当中的disable =yes字段,yes修改为no
重启xinetd服务
[root@localhost~] # service xinetd restart
# 之所以重启xinetd服务直接重启telnet服务因为talnet服务本身是基于xinetd,没有telnet独立服务,重启xinetd后telnet会随之重启
[root@localhost~] # netstat -tlun #查看端口状态
此时就会看到23端口也开启
3.基于xinetd服务的自启动
[root@localhost~] # chkconfig telnet on
ntsysv
# xinetd服务的启动与自启动是通用的,修改其中一种服务启动方式都会同步
4.源码包安装的服务
4.1源码包安装服务的启动
# 不同服务调用的启动脚本绝对路径不同,需要在安装源码包时查看安装说明
vim INSTALL #进入安装完源码包目录查看安装说明
# PEEFIX #安装目录变量
# /bin/apachectl #启动脚本位置
# 如有需要请参考源码包的安装步骤。
4.2源码包服务的自启动
[root@localhost~] # vi /etc/rc.d/rc.local
# 加入源码包服务的绝对路径
4.3让源码包被服务管理命令识别
# 启动脚本软连接/etc/init.d/apache就能够通过service管理
- 让源码包的apache服务被chkconfig与ntsysv命令管理自启动
[root@localhost~] # chkconfig --add apache # 将apache服务加入chkconfig命令管理序列
[root@localhost~] # chkconfig --list | grep apache #查看apache的服务状态
# 启动顺序与关闭顺序不能与系统冲突
cd /etc/rc.d/
rc0-6.d #运行级别
/etc/rc.d/rc3.d/ S10、50 #启动\关闭顺序