您的位置:首页 > 运维架构 > Linux

【Linux】系统服务

2016-06-03 14:27 459 查看
  常驻在内存中的进程,且可以提供一些系统或网络功能,这就是服务,英文“service”。实现service的进程称为daemon。以后,service和daemon不做区分。

1.服务分类

stand_alone :可以自行单独启动的服务

super daemon:一个特殊的daemon来统一管理

这个daemon是xinetd。当没有客户端的请求时,各项服务都是处于未启动状态,等到有来自客户端的请求时,super daemon才唤起相对应的服务,当客户端的请求结束后,被唤醒的服务也会关闭。

2.服务与端口的对应/etc/services

  在网络中,各个主机以IP地址来区分,同一个主机可以提供的网络服务有很多,各个网络服务之间以端口来区分。这个服务于端口之前的对应关系在/etc/services文件中配置。

  常见的端口有:

  80:www端口

  22:ssh端口

etc/service文件内容:

...(前面省略)...
ssh             22/tcp                          # The Secure Shell (SSH) Protocol
ssh             22/udp                          # The Secure Shell (SSH) Protocol
...(中间省略)...
http            80/tcp          www www-http    # WorldWideWeb HTTP
http            80/udp          www www-http    # HyperText Transfer Protocol
...(后面省略)...
#这个文件的内容是以下面的方式来编排的:
#<daemon name> <port/数据包协议> <改服务说明>


用Xshell远程连接虚拟机,即采用的是22端口。

可以通过修改该文件来更改服务的端口号,但是这样做可能会造成一些协议的错误情况。

3.daemon的启动脚本和启动方式

  提供某个服务的 daemon 虽然只是一个程序而已,但是这个 daemon 的启动还是需要运行档、配置文件、运行环境等等, 举例来说,你可以查阅一下 httpd 这个程序 (man httpd) ,里面可谈到不少的选项与参数呢!此外,为了管理上面的方便, 所以通常 distribution 都会记录每一支 daemon 启动后所取得程序的 PID 在 /var/run/ 这个目录下! 在启动这些服务之前,你可能也要自行处理一下 daemon 能够顺利运行的环境是否正确等等。要启动一个 daemon 考虑的事情很多,并非单纯运行一个程序就够了。

  为了解决上面谈到的问题,因此通常 distribution 会给我们一个简单的 shell script 来进行启动的功能。 该 script 可以进行环境的侦测、配置文件的分析、PID 文件的放置,以及相关重要交换文件案的锁住 (lock) 动作, 你只要运行该 script ,上述的动作就一口气连续的进行,最终就能够顺利且简单的启动这个 daemon 。

OK!那么这些 daemon 的启动脚本 (shell script) 放在哪里啊?还有, CentOS 5.x 通常将 daemon 相关的文件放在哪里? 以及某些重要的配置文件又是放置到哪里?基本上是放在这些地方。

/etc/init.d/* :启动脚本放置的位置

/etc/sysconfig/*:各个服务的初始化环境配置文件

/etc/xinetd.conf和/etc/xinetd.d/*:super daemon配置文件

super daemon 的主要配置文件 (其实是默认值) 为 /etc/xinetd.conf ,不过 super daemon 只是一个统一管理的机制,他所管理的其他 daemon 的配置则写在 /etc/xinetd.d/* 里头。

/etc/* :各服务各自的配置文件

各服务的配置文件都是放置在 /etc/ 底下

/var/lib/* :各服务产生的数据库

一些会产生数据的服务都会将他的数据写入到 /var/lib/ 目录中。举例来说,数据库管理系统 MySQL 的数据库默认就是写入 /var/lib/mysql/ 这个目录下啦!

/var/run/* :各服务的程序之 PID 记录处

我们在第十七章谈到可以使用讯号 (signal) 来管理程序, 既然 daemon 是程序,所以当然也可以利用 kill 或 killall 来管理啦!不过为了担心管理时影响到其他的程序, 因此 daemon 通常会将自己的 PID 记录一份到 /var/run/ 当中!例如登录文件的 PID 就记录在 /var/run/syslogd.pid 这个文件中。如此一来, /etc/init.d/syslog 就能够简单的管理自己的程序啰。

4.可自行启动的服务的启动方式

可自行启动的服务启动方式有两种

1./etc/init.d/[服务名] [选项]

例如:/etc/init.d/network restart //重启网络服务



如果不加选项,则系统会告诉你可以用的选项有哪些

例如:/etc/init.d/network



可见,network服务可选的选项有start,stop,status,restart等等。

2.用service脚本启动

Cetnos提供了一个可以启动stand alone服务的脚本,就是service这个进程。其实service仅仅是一个脚本,它可以分析你执行的service后面的参数,然后根据你的参数再到 /etc/init.d/ 去取得正确的服务来 start 或 stop。service语法如下:

service [service name] (start|stop|restart...)
service --status-all


例子:

service network restart //重启网络服务
service network status  //查看网络服务状态




service --status-all    //将系统所有的stand alone的服务状态全部列出来




3.service脚本文件位置(/sbin/service)

前面说过,service其实是一个脚本文件,它的位置在/sbin/service。

事实上,在 Linux 系统中,要『开或关某个 port 』,就是需要『 启动或关闭某个服务』!因此,你可以找出某个 port 对应的服务,程序对应的服务, 进而启动或关闭他,那么那个经由该服务而启动的 port ,自然就会关掉了!

5.super daemon的启动方式

  其实 Super daemon 本身也是一支 stand alone 的服务因为 super daemon 要管理后续的其他服务,他当然自己要常驻在内存中!所以 Super daemon 自己启动的方式与 stand alone 是相同的! 但是他所管理的其他 daemon 就不是这样做啰!必须要在配置文件中配置为启动该 daemon 才行。配置文件就是 /etc/xinetd.d/* 的所有文件。那如何得知 super daemon 所管理的服务是否有启动呢?可以这样做

grep -i 'disable' /etc/xinetd.d/*




disable=yes即取消此服务的启动,如果disable=no则表示启动该服务,比如想启动rsync这个服务,那么可以这样做:

1.修改配置文件,disable由yes改为no:



2.重启xinetd服务



3.查看启动的端口



注意:启动的服务并不是rsync,而是xinetd,因为它要控制rsync。

6.TIPS:

1.安装xinetd

在centos6.3当中,xinetd默认没有安装,安装方法如下:

yum install xinetd


2.chkconfig命令查看服务的自启动状态

chkconfig --list >txt   //查看所有服务的自启动状态,保存如txt文件


...(前面省略)...

network         0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

...(中间省略)...

基于 xinetd 的服务:
chargen-dgram:  关闭
chargen-stream: 关闭
cvs:            关闭
daytime-dgram:  关闭
daytime-stream: 关闭
discard-dgram:  关闭
discard-stream: 关闭
echo-dgram:     关闭
echo-stream:    关闭
rsync:          启用
tcpmux-server:  关闭
time-dgram:     关闭
time-stream:    关闭


0~6代表系统运行级别,以network服务为例,在运行级别为0,1,6的情况下,network服务默认不开启,在2,3,4,5级别下默认开机启动。

基于xinetd的服务当中,只有rsync服务是启用的,其他全部为关闭,这是因为我们前面修改了/etc/xinetd.d/rsync文件中的disable为no。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: