linux下源码包安装的服务管理

目录1、源码包服务的启动管理2、源码包服务的自启动管理3、让源码包服务被服务管理命令识别(1)让通过源码包安装的服务能被service命令管理启动(2)让通过源码包安装的服务能被chkconfi

 

1、源码包服务的启动管理


# 通过源码包的安装路径,找到该服务的启动脚本,
# 也就是获得该服务的启动脚本的绝对路径,
# 最后加上启动选项。
[root@localhost ~]# /usr/local/apache2/bin/apachectl start|stoplrestart|...

注意:

按用源码包安装服务的时候,每个服务的启动脚本是不同的。

我们如何知道一个服务的启动脚本叫什么名称呢?

在官方给你的安装文档中,会明确的告诉你该服务的启动脚本叫什么名称。

开启服务示例:

<a href=linux下源码包安装的服务管理" loading="lazy" src="http://img.dedezhijia.com/imgfile/2209/1B262C9133440-135602.png" />

说明:

这个报错说的是localhost.localdomain这个主机名没有被识别,但是apache服务启动起来是没有问题的。

查看apache服务是否开启,执行命令ps aux | grep httpd

如下图所示:

 

2、源码包服务的自启动管理

通过配置/etc/rc.d/rc.local配置文件,来实现通过源码包安装的服务的自启动管理。

这个方法是通用的,不论是源码包还是RPM包安装的服务都可以,主要看的是你在/etc/rc.d/rc.local配置文件中写的是源码包安装的服务启动命令,还是通过RPM包安装的服务启动命令。

所以在上文中推荐使用配置文件的方式进行服务的管理,通用、统一管理linux系统中的服务。

示例:


# 配置/etc/rc.d/rc.local配置文件
[root@localhost ~]# vim /etc/rc.d/rc.local

# 修改自启动文件内容
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
/usr/local/apache2/bin/apachectl start

 

3、让源码包服务被服务管理命令识别

我们接下来就做个试验,把通过源码包安装的apche服务,变为和RPM包安装的apache服务一样,可以被servicechkconfigntsysv命令识别。

我们所要解决的问题如下图:

 

(1)让通过源码包安装的服务能被service命令管理启动

service命令其实只是在/etc/rc.d/init.d/目录中查找是否有服务的启动脚本,所以我们只需要做个软链接,把源码包的启动脚本链接到/etc/rc.d/init.d/目录中,就能被service命令管理了。


# 将通过源码包安装的服务的启动脚本,在/etc/rc.d/init.d/目录中做一个软链接
[root@localhost ~]# ln -s /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/apachectl

查看/etc/rc.d/init.d/内容,如下图所示:

执行service apachectl restart命令,开启apche服务。

可以看到apche服务可以通过service 命令进行启动了,没有报未被识别的服务错误。

 

(2)让通过源码包安装的服务能被chkconfig命令管理自启动

接上一步,然后需要对软链接到/etc/rc.d/init.d/目录,通过源码包安装的服务的启动脚本进行配置。


# 编辑/etc/rc.d/init.d/目录中的源码包启动脚本
# (注意此文件是软链接,所以修改的还是源码包启动脚本)
[root@localhost ~]# vim /etc/rc.d/init.d/apachectl

# 在开头添加内容如下
#!/bin/sh
# 添加内容-1
# 指定httpd脚本可以被chkconfig命令管理
# 格式是:chkconfig:运行级别启动顺序关闭顺序
# 这里我们设定apache在3和5级别能被chkconfig命令管理,启动顺序是S86,关闭顺序是K76
# 注意:(自定顺序,不要和系统中已有的启动程序顺序冲突)
# chkconfig:35 86 76
#
# 添加内容-2
# 说明,内容随意
# description:aaabbbccc

#以上两句话必须加入,才能被chkconfig命令识别。

然后让chkconfig命令能够管理源码包安装的服务。


[root@localhost ~]# chkconfig --add apachectl

没有报错说明成功。

通过chkconfig命令查看Linux中自启动服务。

如下图所示:

然后可以通过chkconfig命令开启该服务的自启动状态了。

 

(3)让ntsysv命令可以管理通过源码包安装的服务

ntsysv命令其实是和chkconfig命令使用同样的管理机制,也就是说上面chkconfig命令能够管理源码包安装的服务,ntsysv命令也就可以管理通过源码包安装的服务了。

执行[root@localhost ~]# ntsysv命令,可以在图形界面中找到我们上边刚刚配置的apache服务。

 

(4)总结

如果想让源码包服务被service命令识别并管理,只要做个软链接把启动脚本链接到/etc/rc.d/init.d/目录中即可。

要想让源码包服务被chkconfig命令识别,除了需要把服务的启动脚本链接到/etc/rc.d/init.d/目录中,还要修改这个启动脚本,在启动脚本的开头加入:

# chkconfig:运行级别、启动顺序、关闭顺序。

# description:说明信息。然后需要使用chkconfig --add 服务名的方式,把服务加入chkconfig命令管理中。

命令格式如下:


[root@localhost ~]# chkconfig [选项] [服务名]

选项:
  --add:把服务加入chkconfig命令的管理。
  --del:把服务从chkconfig命令的管理中删除。

# 示例:
# 把apache服务从chkconfig命令的管理中删除
[root@localhost ~]# chkconfig -del httpd

chkconfig命令配置完成,ntsysv命令也就可以管理该服务了。

提示:

知道源码包安装的服务可以这样处理就可以了,并不推荐这样做。通过源码包安装的服务就用源码包的方式启动服务,通过RPM包方式安装的服务,就用RPM包的方式启动服务,就很好。

到此这篇关于linux下源码包安装的服务管理的文章就介绍到这了,更多相关linux源码包安装管理内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

目录1Apache的作用2Apache的安装3apache的启用4apache的基本信息5apache的访问控制5.1基于客户端ip的访问控制5.2基于用户认证的访问控制6apache...
目录1.在usr目录下创建Hadoop目录,将安装包导入目录中并解压文件2.进入vim/etc/profile文件并编辑配置文件3.使文件生效4.进入Hadoop目录下5.编辑配置文件6.进入sla...
目录1.用户建立脚本2.猜字游戏3.网卡流量监控1.用户建立脚本(1)设计文件判断模块(2)设计用户建立(3)文件内容脚本内容#!/bin/bashUSERADD(){#用户创建函数...
1、查看Linux磁盘情况df-lhlsblk命令用于列出所有可用块设备的信息,并且显示他们之间的依赖关系。新建磁盘分区fdisk/dev/vda更改新分区磁盘类型保存分区操作并重启操作系统格式...
1.查看openjdkrpm-qa|grepjdk2.删除openjdk(rpm-e--nodeps)rpm-e--nodepsjava-1.8.0-openjdk-headles...
1.进入到/etc/init.d目录中:cd/etc/init.d2.创建tomcat服务配置文件:vitomcat3.将以下代码复制到创建的tomcat配置文件中:#idea-...