Linux软件安装——服务管理

时间:2023-11-23 18:42:38

Linux软件安装——服务管理

摘要:本文主要学习了Linux中有关服务管理的知识。

什么是服务

服务一般是放置在后台运行的一个或多个进分程,为用户或系统提供某项特定的服务,有些是系统服务,有些则是独立的网络服务。

对于这些服务,我们可以通过运行主程序来启动或关闭服务,也可以通过系统提供的service和chkconfig来管理。

服务的分类

Linux中的服务按照安装方法不同可以分为RPM包默认安装的服务和源码包安装的服务两大类。

其中,RPM包默认安装的服务又因为启动与自启动管理方法不同分为独立的服务和基于xinetd的服务。

RPM包

RPM包默认安装的服务。这些服务是通过RPM包安装的,可以被服务管理命令识别。这些服务又可以分为两种:

1)独立的服务

就是独立启动的意思,这种服务可以自行启动,而不用依赖其他的管理服务。因为不依赖其他的管理服务,所以,当客户端请求访问时,独立的服务响应请求更快速。

目前,Linux中的大多数服务都是独立的服务。

2)基于xinetd的服务

这种服务就不能独立启动了,而要依靠管理服务来调用。这个负责管理的服务就是xinetd服务。xinetd服务是系统的超级守护进程,其作用就是管理不能独立启动的服务。

当有客户端请求时,先请求xinetd服务,由xinetd服务去唤醒相对应的服务。当客户端请求结束后,被唤醒的服务会关闭并释放资源。

样做的好处是只需要持续启动xinetd服务,而其他基于xinetd的服务只有在需要时才被启动,不会占用过多的服务器资源。但是这种服务由于在有客户端请求时才会被唤醒,所以响应时间相对较长。

源码包

源码包安装的服务。这些服务是通过源码包安装的,所以安装位置都是手工指定的。由于不能被系统中的服务管理命令直接识别,所以这些服务的启动与自启动方法一般都是源码包设计好的。每个源码包的启动脚本都不一样,一般需要查看说明文档才能确定。

RPM包和源码包的不同

1)编译使用不同

RPM包是经过编译的软件包,安装更快速,不易报错,但不再是开源的。

源码包是开源的,自定义性强,通过编译安装更加适合系统,但是安装速度较慢,编译时容易报错。

2)安装位置不同

源码包安装到我们手工指定的位置当中,而RPM包安装到系统默认位置当中(可以通过rpm -ql 包名命令查询)。

也就是说,RPM包安装到系统默认位置,可以被服务管理命令识别,但是源码包安装到手工指定位置,当然就不能被服务管理命令识别了(可以手工修改为被服务管理命令识别)。

对服务进行管理

通过主程序管理服务

通过手动执行主程序来启动服务,首先要知道主程序保存的路径。例如,手动启动Apache服务,需要知道Apache主程序的存储路径即可,/usr/local/apche2/bin/apachectl start开启服务,/usr/local/apche2/bin/apachectl stop停止服务。绝大多数通过源码安装的软件都需要我们手动指定路径来启动服务。

通过service管理服务

如果通过rpm或yum安装,则应用程序一般会在/etc/init.d目录下创建对应的启动脚本,我们可以通过service命令来管理服务。service命令其实是去/etc/init.d目录下,去执行相关程序。

有时更改了服务配置后,不想停止服务的情况下来使配置生效,可以通过reload参数来重新加载配置文件,或者是你更改配置不知道新的配置是否正确,或重启服务后是否会导致服务无法启动,可以使用condrestart选项,此时系统会测试新的配置文件是否有问题,没问题的才会重启,否则不会用新配置来重启服务。

通过chkconfig管理开机启动服务

由于Linux是服务器版的操作系统,所以需要将很多服务设置为开机启动。chkconfig命令可以用来管理开机启动项,但设置开机启动时需要指定运行级别。

Linux操作系统正常情况下可以在六种模式(4暂时未使用)下启动并分别用数字表示:1代表关机模式,2代表无NFS网络的字符界面模式,3代表全功能字符界面模式,4暂时未定义使用,5代表图形界面模式,6代表重启模式。

每个级别都有启动和不启动的服务,通过runlevel命令查看当前所处的运行级别,通过init n来改变运行级别。

通过systemctl管理服务

从CentOS 7开始,CentOS开始使用systemd服务来代替daemon,原来管理系统启动(chkconfig)和管理系统服务(service)的相关命令全部由systemctl命令来代替。