linux基础(一)服务分类与管理

前言

对于linux的众多服务,我们可以根据其安装形式分为:
1.rpm默认安装的服务
2.源码包安装的服务
对于rpm默认安装的服务,又可以分为独立的服务和基于xinetd的服务

区别

1.通过rpm安装的服务和源码安装的服务安装后文件的位置不同
2.通过rpm安装的服务和源码安装的服务启动方式不同

安装位置的不同

源码安装的一般都手动放在/usr/local目录下
rpm安装的服务根据不同服务功能安装的目录在如图所示

location.png

启动方式的不同

一、rpm安装包的启动方式

1.独立服务的管理

注:
启动:当前系统下服务启动
自启动:下次开机后服务启动,现在服务是否启动不知道
netstat –pantu :查看系统启动的服务和服务的链接和监听状态
ps –aux 也是可以查看系统启动服务
lsof -i :端口号 #查看特定端口的服务类型
1.启动方式:

 /etc/init.d/独立服务名  start|stop|status|restart  #此方式适用所有linux系统
 service 独立服务名  start|stop|status||restart  #redhat系列系统才有命令

2.自启动方式:

chkconfig –level 2345 httpd on #--level 2345可以省略
编辑/etc/rc.d/rc.local 文件,在其中加入启动方式,例如在文件中写入: /etc/init/httpd  start #此方式推荐
ntsysv
 注:
-----/etc/rc.d/rc.local和/etc/rc.local互为软链接,任意一个即可。
-----2种自启动方法,二选一即可,各自不影响。
-----ntsysv命令和chkconfig 是一种方法,ntsysv是图形界面(也是redehat系列有此方法)
-----chkconfig --list 是查看服务自启动状态,可以看到所有rpm包安装的服务

2.基于xinetd服务(使用xinetd来开启和关闭rsync)

前提:xinetd被安装(用rpm -qa xinetd查看),若没有,则用yum安装。
启动方法(以rsync服务为例):
1.编辑.vim /etc/xinted.d/rsync文件,更改如图所示参数

image.png

2.rsync等服务是基于xinetd,即被xinetd管理的,则重新启动rsync服务,要:service xinetd restart
若要自启动:
1.chkconfig rsync on
2.ntsysv
注:
1.rsync服务的作用:用于linux之间数据备份
2.安装xinetd来开启和关闭rsync服务,若没有安装xinetd,则可以用其他方法开启rsync服务:
rsync --daemon #开启服务
3.或者使用自己编写的rsync启动脚本进行服务的开启

#!/bin/bash
#chkconfig:2345 21 81
#description
#上面2行为开机自动开启服务
#限制参数个数
if [ $# -ne 1 ]
        then
                echo $"usage:$0 {start|stop|restart}"
                exit 1
fi
#参数类型
版本一:
if [ "$1" == "start" ];then
        rsync --daemon
        sleep 2  #休息2秒,这点很重要,停止或启动后建议休息2秒后在判断
                if [ $(netstat -pantu | grep rsync | wc -l) -ne 0 ];then #如果过滤的rsync不是0,则说明启动了
                        echo "rsync is started"
                        exit 0
                fi
elif [ "$1" == "stop" ];then
        pkill rsync &>/dev/null  #停止服务的方法很多,自选即可
        sleep 2
                if [ $(netstat -pantu | grep rsync | wc -l) -eq 0 ];then
                        echo "rsync is stopped"
                        exit 0
                fi
elif [ "$1" == "restart" ];then
        killall rsync
        sleep 1
        postKill=$(netstat -pantu | grep rsync | wc -l) #关闭前和启动后都有对应的标识字符

        rsync --daemon
        sleep 1
        postStart=$(netstat -pantu | grep rsync | wc -l)

        if [ "$postKill" -eq 0 -a "$postStart" -ne 0 ];then
                echo "rsync is restarted"
                exit 0
        fi
else
        echo $"usage:$0 {start|stop|restart}" #若没有安装要求输入参数,则提示后退出脚本

fi
注:
只有独立的服务才有运行级别,而基于xinetd的服务没有运行级别;
chkconfig 启动基于xinetd的服务时,不能加运行级别,否则会报错;
独立的服务:启动就是启动,自启动就是自启动;
xinetd服务:启动和自启动相通,混为一谈,即通过chkconfig rsync on 和编辑/etc/xinetd.d/rsync文件的效果是一样的,改一个,另一个也会变,包括配置文件。

二、源码包的启动方式(apache为例)

具体apache安装方法及报错请参考:
https://blog.csdn.net/River_Crab/article/details/79732131

1.启动方式

使用绝对路径,调用启动脚本来启动

/usr/local/apache/bin/apachectl  start | stop
lsof -i:80  #检查是否开启
注:
安装时,默认放在/usr/local/,也可以加上--prefix=目录来 指定路径

2.自启动方式

在配置文件:/etc/rc.local 中写入:/usr/local/apache/bin/apachectl  start

3.被service所启动

ln -s /usr/local/apache/bin/apachectl /etc/init.d/httpd#做软链接
放到/etc/init.d目录下后,service可以识别,以便用service启动
eg:service httpd start  #开启
lsof -i :80 #检查是否开启

4.被chkconfig所识别(以apache为例)

源码安装的Apache,chkconfig不支持:


image.png

为了使其支持源码安装的:

1.编辑/etc/init.d/httpd文件,加入下面2行(#不可省略)
#chkconfig:35 86 77
#description:source package apache
第一句话是:指定httpd脚本可以被chkconfig命令管理,格式:chkconfig :运行级别 启动顺序  关闭顺序
第二句话:说明,内容随意
注:此启动顺序 号和 关闭顺序号与/etc/rc3.d/下以“s”开头和以“k”开头的号码不能重复的任意号码。
/etc/rc5.d/是运行级别五的启动目录
2.执行chkconfig --add httpd 即可

总结如图:

image.png

你可能感兴趣的:(linux基础(一)服务分类与管理)