所谓Linux的服务,就是在系统后台运行的应用程序,并且可以提供一些本地系统或网络的功能。
主要分为两大类,RPM包默认安装的服务、源码包安装的服务
/etc/init.d/ :存放所有独立服务的启动脚本,与 /etc/rc.d/init.d/ 目录相同,使用哪一个都可以。
/etc/sysconfig/ : 存放服务的初始化环境配置文件。
/etc/ :存放服务的配置文件。
/etc/xinetd.conf/ :超级守护进程xinetd的配置文件。
/etc/xinetd.d/ :存放基于xinetd服务的启动脚本。
/var/lib/ :默认数据存储目录。如RPM包默认安装的mysql服务的数据会存放在/var/lib/mysql/目录中。
/var/log/ :默认日志存储目录。如RPM包默认安装的httpd服务的日志会存放在/var/log/httpd/目录中。
Linux默认使用 /etc/init.d/独立服务名 start | stop | restart | status 对独立服务进行启动、停止、重启、查看状态,如下:
红帽系列系统可以使用 service 独立服务名 start | stop | restart | status 对独立服务进行启动、停止、重启、查看状态,还可以使用 service --status-all 命令查看所有独立服务的启动状态。其他Linux发行版本的专有命令各有不同,这里不做一一描述。
自启动是指在系统重启之后,服务也会随之重启。这里介绍两种常用的自启动设置方式:
1)可使用命令 chkconfig --level 运行级别 独立服务名 on|off ,如下:
chkconfig --level 23456 redis on
chkconfig --level 6 redis off
可通过 chkconfig --list 命令查看RPM包默认安装的所有服务及自启动状态:
2)可通过修改 /etc/rc.d/rc.local 或 /etc/rc.local 文件,加入服务启动命令,如下:(源码包安装的服务同样适用,所以建议统一用这种方式设置自启动服务。注意与chkconfig相对独立,不会影响chkconfig --list的变化)
#!/bin/bash
......
touch /var/lock/subsys/local
#示例:加入redis自启动
/etc/init.d/redis start
系统中默认没有安装xinetd超级守护进程,执行安装:
yum -y install xinetd
安装成功后执行 chkconfig --list 命令查看会多出来xinetd服务:
基于xinetd的服务一般通过修改该服务的配置文件进行启动,如Telnet服务,修改 /etc/xinetd.d/telnet 文件中的 disable = no,然后重启xinetd服务:service xinetd restart 即可。
通过 chkconfig 服务名 on | off 命令设置自启动开关,基于xinetd服务,不用指定--level,如:
chkconfig telnet on
源码包安装的服务,一般说明文档里会指明启动脚本是哪个文件,如使用源码包安装到 /usr/local/ 目录下的apache服务可以使用如下命令:
/usr/local/apache2/bin/apachectl start | stop | restart
源码包安装的服务,同样可以参照2.3中的第二种方法实现自启动,如下加入 /etc/rc.d/rc.local 文件中:
#!/bin/bash
......
touch /var/lock/subsys/local
#示例:把源码包安装的apache服务加入自启动
/usr/local/apache2/bin/apachectl start