前言
对于linux的众多服务,我们可以根据其安装形式分为:
1.rpm默认安装的服务
2.源码包安装的服务
对于rpm默认安装的服务,又可以分为独立的服务和基于xinetd的服务
区别
1.通过rpm安装的服务和源码安装的服务安装后文件的位置不同
2.通过rpm安装的服务和源码安装的服务启动方式不同
安装位置的不同
源码安装的一般都手动放在/usr/local目录下
rpm安装的服务根据不同服务功能安装的目录在如图所示
启动方式的不同
一、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文件,更改如图所示参数
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不支持:
为了使其支持源码安装的:
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 即可