系统服务

1、daemon
1.1、daemon分类
daemon就是提供service的程序,如果依据daemon的启动与管理方式来区分,可将daemon分为:
  • 可独立启动的stand alone
  • 透过一支super daemon来统一管理的服务

1.2、stand alone
此daemon可自行单独启动服务,daemon启动并加载到内存后就一直占用内存与系统资源。
优点:
因为一直在内存中,所以响应客户端的请求较快。
常见的stand alone有:
  • httpd www的daemon
  • vsftpd FTP的daemon

1.3、super daemon
这种服务的启动方式是借由一个统一的daemon来负责唤起服务,这个特殊的daemon就被称为super daemon。早期的daemon是inetd,后来被xinetd取代了。这种机制特点在于当没有客户端请求时,各项服务都是未启动状态,等到有请求时,super daemon才唤醒相应的服务。当请求结束后,被唤醒的服务也会关闭并释放系统资源。
优点:
  • 由于super daemon统一唤醒服务,所以super daemon具有安全管控的机制,类似防火墙。
  • 服务在请求结束后就关闭,因此不会一直占用系统资源。
常见的super daemon所管理的服务有telnet。

1.4、daemon工作形态的类型
  • signal-control:信号控制
  • interval-control:每隔一段时间就去执行某项工作,atd和crond就是

1.5、daemon的命名规则
每一个服务名称通常是以d结尾,例如httpd、atd、crond,这个d就是daemon的意思。

2、服务与端口号
(1)通讯协议(http、ftp)是为了约定俗成的将一些服务部署在某些特定的端口上,这样才能使请求方和服务方达成一致。
(2)/etc/services
/etc/services中存放的就是服务与端口号的对应关系:
第一列为daemon名称,第二列即是端口号和网络数据封包协议,封包协议主要分为tcp和udp。

3、daemon的启动脚本与启动方式
3.1、配置文件
(1)/etc/init.d/* 启动脚本放置处
系统上几乎所有的服务启动脚本都放置在这里。
(2)/etc/sysconfig/* 各服务的初始化环境配置文件
例如登录档的syslog在/etc/sysconfig/syslog下,网络相关的在/etc/sysconfig/network下等。
(3)/etc/xinetd.conf,/etc/xinetd.d/* super daemon的配置文件
/etc/xinetd.conf是super daemon的主配置文件,其所管理的其他daemon的配置在/etc/xinetd.d/*下。
(4)/etc/* 各服务各自的配置文件
(5)/var/lib/* 各服务产生的数据库
一些会产生数据的服务都会将他的数据写入到/var/lib目录下,例如/var/lib/mysql。
(6)/var/run/* 各服务的程序之PID记录处
每个程序的PID都会记录在/var/run目录下。

3.2、stand alone的启动
(1)通过在/etc/init.d/*下的启动脚本来启动
直接输入/etc/init.d/服务名,不带任何参数,可以查看该服务可用的选项参数
(2)通过service这个指令来启动
service 服务名 选项参数

3.3、super daemon的启动方式
(1)因为要常驻内存管理其他程序,所以super daemon本身也是一支stand alone的服务,其启动方式与stand alone一样。但是super daemon所管理的daemon必须要在配置文件/etc/xinetd.d/*中设定,查看super daemon所管理的服务是否有启动:
grep -i ‘disable’ /etc/xinetd.d/*
(2)修改某个服务启动或停止
①修改服务的配置文件
vim /etc/xinetd.d/服务xxx
disable=yes/no
②重启xinetd这个服务
/etc/init.d/xinetd restart
(3)super daemon的配置文件xinetd.conf只是个预设配置文件,查看xinetd.conf最后一行,发现更多的配置文件是在/etc/xinetd.d/*下。

4、防火墙管理
4.1、/etc/hosts.allow,/etc/hosts.deny管理
(1)任何以xinetd管理的服务,都可以透过这2个文件来设定防火墙,另外/etc/hosts.allow,/etc/hosts.deny也是/usr/sbin/tcpd的配置文件,而这个/usr/sbin/tcpd则是用来分析进入系统的TCP网络封包的一个软件。并且被管控的服务必须支持TCP Wrappers函数式功能,才能使用/etc/hosts.(allow|deny)来设定防火墙。
(2)测试服务是否支持TCP Wrappers
ldd $(which 服务1 服务2)
重点就在于有没有支持libwrap.so那个函数库。

4.2、TCP Wrappers

5、设定开机启动服务

5.1、了解Linux主机的开机过程
  • 打开计算机电源,开始读取BIOS并进行主机的自我测试;
  • 通过BIOS取得第一个可开机装置,读取主要开机区(MBR)取得开机管理程序;
  • 通过开机管理程序的设定,取得kernel并加载内存且检测系统硬件;
  • 内核主动调用init程序;
  • init程序开始执行系统初始化(/etc/rc.d/rc.sysinit);
  • 根据init的设定进行daemon 启动(/etc/rc.d/rc[0-6].d/*);
  • 加载本机设定(/etc/rc.d/rc.local)。
(1)上面的倒数第2个步骤就是依据不同的执行等级调用不同的服务。
(2)执行等级概念
我们在启动Linux系统时,可以进入不同的模式,这模式我们称之为执行等级。不同的执行等级有不同的功能与服务,正常的执行等级有2种:
  • 具有图形化界面的run level5;
  • 纯文本界面的run level3。

5.2、chkconfig
(1)管理系统服务是否开机启动
chkconfig --list 【服务名称】
chkconfig 【--level [0-6]】 【服务名称】 【on | off】
--list 仅将目前的各项服务状态列出来
(2)super daemon管理的daemon不能通过/etc/init.d/* status的方式查看,只能通过以下命令查看:
  • netstat -tulnp
  • ss -pl
(3)chkconfig修改完stand alone的daemon之后,stand alone通过/etc/init.d/* 重启生效,chkconfig修改super daemon管理的daemon之后,通过/etc/init.d/xinetd 重启生效。
(4)chkconfig 【--add | --del】 【服务名称】
--add 增加一个服务名称给chkconfig管理,但服务名必须在/etc/init.d/下
--del 删除一个chkconfig管理的服务
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值