33 linux服务管理
1、服务的分类
1.1 rpm包安装的服务:默认的服务
1.1.1 独立的服务:直接就在内存当中,当用户访问时,直接提供用户服务,好处响应快,坏处这样服务越多,占用内存越多
1.1.2 基于xinetd服务:xinetd服务本身是独立的,就在内存中,基于它的服务不驻扎在内存,例如isync服务是基于xinetd服务,当访问isync时候,不能直接访问isync服务,要先访问内存中的xinetd服务,因为isync基于xinetd管理,在让xinetd去调用isync,因为isync不常住内存,所以这类服务是不会大量占用内存,但是相应相对于独立服务就慢一点
1.2 源码包安装的服务
2、查看linux中安装的服务
2.1 查看RPM包安装的所有服务、查看RPM包服务自启动状态:chkconfig --list #无法查看源码包安装的服务
0~6:启动级别 // /etc/inittabi
2.2 查看源码包安装的所有服务:一般都是查看/usr/local下
【注】:service与chkconfig都是只能操作rpm包,service是搜索/etc/rc.d/init.d/下的文件,所有rpm包可执行文件都在这个文件夹下,而源码包安装不会在这,如果将源码包的可执行文件拷贝到/etc/rc.d/init.d/下或者做个软连接到这里,那源码包服务也可以使用service命令操作了,但是!!不推荐!!,以为这是rpm包与源码包一种区别
3、RPM包
3.1 RPM安装服务默认位置(源码包一般都是在/usr/local)
3.1.1 独立服务
/etc/init.d/(或者/etc/rc.d/init.d都一样,软链接):启动脚本位置
/etc/sysconfig:初始化环境配置文件位置
/etc/:配置文件位置
/var/lib:服务产生的数据
/var/log:服务产生的日志
3.1.2基于xinetd服务的
/etc/xinetd.conf :xinetd配置文件
/etc/xinetd.d : 基于xinetd服务启动文件
/var/lib:服务产生的数据
/var/log:服务产生的日志
3.2 独立服务启动
3.2.1 方法一: /etc/rc.d/init.d/可执行文件 start | stop | restart | status
3.2.2 方法二:service 服务名 start | stop | restart | status
【注】:service是redhat专有的,ubuntu系列等没有,其实service也就是搜索/etc/rc.d/init.d下的文件,这时候就要用第一种方法启动
service --status-all //列出所有已安装的rpm包的服务的状态
3.3 让服务开机自启动
3.3.1 方法一:chkconfig --level 2345 httpd on //httpd会开机自启动,off为关闭,默认就是2345 所以--level 2345 可以不写,只写chkconfig httpd on,同样只能管理RPM包服务
3.3.2 方法二(推荐):/etc/rc.d/rc/local(或者/etc/rc.local,都是软连接) //输入用户名密码之前会执行这个文件中的服务,可以管理RPM包与源码包
3.3.3 方法三:ntsysv类似setup,想启动就加*,不想启动就取消,不能管理源码包,可以管理所有rpm包,【注】:redhat专有命令与service一样
4、源码包
4.1 安装目录:/usr/local/
4.2 启动位置: /usr/local/apache2/bin/apache1 start | stop
4.3 源码包自启动:启动命令加入 /etc/rc.d/rc.local中
4.4 让源码包可以使用service启动(不推荐):ln -s /usr/local/apache2/bin/apache1 /etc/rc.d/init.d/
4.4 让源码包可以被chkconfig与ntsysv识别(不推荐):
vim /etc/rc.d/init.d/apache
#chkconfig: 35 86 76 //指定httpd脚本可以被chkconfig管理。chkconfig 运行级别 启动顺序 关闭顺序
【注】:启动顺序、与关闭顺序不能与系统服务重复,在/etc/rc.d里面有rc0.d~rc6.d数字代表启动级别,我现在是3级别所以去看3级别下rc3,d,S代表启动,K代表关闭,他们后面的数字就是数字顺序,所以自己设置的顺序不能跟系统的一样
#description:source package apache //说明,内容随意
保存退出后,执行:chkconfig --add/--del apache
此时在用 chkconfig --list | grep apache就能看到