Linux视频学习笔记(十七)--Linux服务管理
声明:本系列文章是博主根据 “兄弟连新版Linux****”做的笔记和视频截图,只为学习和教学使用,不适用任何商业用途。
PS:文章基于Linux版本CentOS6.9,如果对Linux感兴趣,建议去看《细说Linux》,沈超老师和李明老师的教学风格我很喜欢:)
视频12.1 服务分类
RPM包安装的服务中:
独立的服务需要占用内存,xinetd服务本身也占用内存,但是
xinetd服务本身是独立的,但是还有许多基于xinetd的服务本身不占用内存,被xinetd管理。
本章要学习的就是RPM包安装服务与源码包安装服务的启动与自启动;
使用chkconfig --list命令查看RPM包安装的服务的自启动状态:
(其中0-6代表Linux系统的7个默认运行级别:0代表关机、1:单用户、2:不完全多用户、3:字符界面、4:未分配、5:图形化界面、6:重启动)
12.2 RPM服务的管理
视频12.2.1 独立服务管理
1.RPM包安装服务的位置
注意:
/etc/ini.d/下是独立服务的启动脚本,/etc/xinetd.d/下是基于xinetd服务的启动脚本;
/etc/下存放RPM包安装服务的配置文件,而/usr/local/下存放的是源码包安装服务的配置文件,/etc/xinetd.conf是xinetd配置文件;
/var/lib/下是服务产生的数据,如:rpm包安装的MySQL服务,其数据放在/var/lib/mysql/下;
如上,RPM包安装的服务,其相关文件分别放在不同的路径,删除比较麻烦,所以提供了专门的RPM包删除命令:rpm –e 包名
绝大多数RPM包安装服务的位置都是上述位置,但也有少数特殊服务安装路径不再上述路径;
2.独立服务的启动
如:/etc/init.d/服务名 status命令查看服务状态
service 服务名 status命令也可以查看RPM包服务的状态,但是有部分看不了,所以最保险的方式还是使用/etc/init.d/服务名 status
service --status-all命令会列出系统中所有RPM包安装服务的状态
3.独立服务的自启动
3.1 chkconfig 服务 on/off方式开启RPM服务自启动
chkconfig --list命令可以查看服务的自启动状态,也可用
chkconfig --level 运行级别 服务名 on来使所选运行级别自启动,但是当前此服务是否启动,不能确定;
如:
chkconfig --level 2345 httpd on设置Apache服务2、3、4、5级别自启动(2345为习惯自启动级别):
等价于chkconfig httpd on命令,因为默认启动/关闭的级别就是2345;
3.2 修改/etc/rc.d/rc.local文件内容来进行RPM服务自启动
rc.local文件是在系统开机后输入用户名密码前读取的文件:
touch /var/lock/subsys/local命令,当touch一个已存在的文件时会修改文件的创建时间,可以通过检测此文件来确定系统的重启时间。
可以在local文件中添加/etc/init.d/httpd restart命令来让系统启动时自启动httpd服务;
3.3 通过ntsysv命令
ntsysv命令是类似setup命令的图形化界面,里面是系统安装的各种RPM包服务和基于xinetd的服务,所以可以修改独立服务的自启动状态,但是同样的不能修改源码包安装服务的自启动状态;
如上图:只要将服务前的星号勾选,则修改自启动状态为启动;
chkconfig命令和ntsysv命令都是红帽专有命令,所以最保险的是修改/etc/rc.d/rc.local文件
视频12.2.2 基于xinetd服务的管理
1.安装xinetd与telnet
现在基于xinetd的服务越来越少,本节只做了解;
telnet(默认端口23)以不被使用管理网络管理,而使用更加安全的ssh(默认端口22)服务;
查看系统中的独立服务,chkconfig --list:
Linux服务器中默认没有安装xinetd服务,需要手动安装:yum –y install xinetd
此时查看系统中的服务,发现多了xinetd服务以及基于xinetd的服务:
基于xinetd的服务不会直接占用内存,但是在启动效率上要低于独立服务;
以telnet服务为例演示基于xinetd服务的启动与关闭,之后需要删除,
telnet客户端服务默认已经安装,telnet服务端默认不会安装,因为不安全:
(但是我安装的Linux系统中这两个服务都没有安装 ~_~!)
yum –y install telnet
yum –y install telnet-server
再次查看服务列表,发现多了telnet服务:
telnet服务的默认端口是23,先查看端口列表,没有发现23,可以用查看23端口是否被启动来判断telnet服务是否启动:
2.xinetd服务的启动
第一步,要想启动telnet服务,首先打开/etc/xinetd.d/telnet文件,修改其中disable属性值为no(默认为yes):
第二步,重启xinetd服务,不是重启telnet服务,发现23端口已经占用,说明Telnet服务已经启动;
3.xinetd服务的自启动
3.1启动telnet服务后,查看服务列表,发现telnet服务已经设置为自启动:
3.2使用chkconfig telnet off关闭自启动,发现23端口也关闭了:
再查看/etc/xinetd.d/telnet文件,发现disable也变为yes(不可用):
说明基于xinetd的服务自启动和服务的启动是一致的
视频12.3 源码包服务管理
3.让源码包服务被服务管理命令识别
注意:
指定源码包的启动顺序 和 关闭顺序不能和现有的启动顺序/关闭顺序冲突,检测方法:
进入/etc/rc.d/路径下,可看到rc0.d-rc6.d,分别对应6个启动级别,比如3级别,进入后看到S开头的是启动时的顺序,K开头是关闭时的顺序:
只要在/etc/init.d/httpd文件里设置的启动关闭顺序不与现有的冲突就可以(实际上貌似不是这样的,用 – 85 15);
先使用chkconfig –list命令查看自启动列表,发现没有apache:
然后将
# chkconfig: 35 100 100(不好使)
# chkconfig: - 85 15
# description: source package apcache
添加在/etc/init.d/apache文件中,
此时再使用chkconfig –add apache命令添加到服务列表中,在查看服务列表:
视频12.4 服务管理总结
Linux系统中一般需要自启动服务的列表: