一、服务是什么?

用白话文说,服务就是“常驻在内存中的进程”,用来提供一些系统或网络功能。

二、service和daemon的区别与联系

因为服务(service)本质上来说也是程序,程序运行就会产生进程。而启动运行这个service的进程(程序)就是daemon。一个服务是需要一个daemon在后台运行的,没有这个daemon就不会有service。

注意:启动服务时,我们会发现很多情况下会在服务名称后面多个d(例如httpd),这个d就是daemon的意思。

三、daemon的主要分类

1.启动管理方式来分类

(1).stand_alone:

可以独立启动的服务。

这种daemon可以自行启动而不必通过其他机制的管理。这种daemon启动后就一直占用系统资源,常驻与内存,所以对客户端的请求响应速度非常快。

(2).super daemon

通过启动一个统一的daemon来负责唤醒服务,这个特殊的daemon就是super daemon,即xinetd(替代了早期的inetd)。

当没有客户端请求时,各项服务都是未启动的状态。等到有客户端请求时,super daemon(xinetd)则会唤醒对应的服务。客户端请求结束后,被唤醒的这个服务也会关闭并且释放系统资源。

优点:

①:由于super daemon(xinetd)负责唤醒各项服务。因此super daemon可以具有安全控管的机制(类似于网络防火墙的功能)。

②:客户端请求结束后便会关闭服务。所以不会一直占用系统资源。

缺点:

因为客户端有请求才会启动服务,再加上加载内存的时间,导致这种服务的响应速度会比较慢。

注意:

虽然super daemon管理的服务并不是常驻与内存中。但是super daemon本身是常驻与内存中的。

2.以工作状态来分类

(1).signal-control

这种daemon是通过信号来管理的。只要有客户端请求,便会立即启动区管理。

(2).interval-control

这种daemon是每隔一段时间就主动去执行某项工作。所以你要做的是在配置文件指定服务要进行的工作与执行时间。

例如atd与cron。它们每分钟检测一次配置文件。

四、服务与端口

系统的所有功能都是由程序提供,而程序的运行会产生进程。网络服务也属于进程。这时候很多人就会问了,我的电脑可以启动多个服务,按理说也可以启动多个网络服务。但是就一台主机,一般来说一台主机仅有一个IP,那么别人访问你主机上的服务时,通过什么方式区分不同的服务呢?

答案是——端口号(port number)

端口号与服务的对应数据存放在

/etc/services

文件里面。

特别注意:虽然有时候可以通过修改该文件来修改某些服务的端口号。但是并不介意这么做,否则很容易出现一些协议错误的情况。

五、daemon的配置文件和启动方式

1.配置文件

/etc/init.d/ ===> 服务启动脚本放置处。

/etc/sysconfig/ ===> 各服务的初始化环境配置文件。

/etc/xinetd.conf/ 以及 /etc/xinetd.d ===> super daemon配置文件

/etc/ ===> 各服务各自的配置文件

/var/lib/ ===> 各服务产生的数据库

/var/run/ ===> 各服务的进程PID记录处

2.启动方式

(1).Stand alone

第一种方法:

  1. /etc/init.d/serverName [start|stop|restart|status|condrestart]
  2. condrestart ===> 如果该服务已运行,可以重启这个服务,如果服务没有运行,则无法启动

从/etc/init.d/文件目录下启动服务会先去检测环境查找配置文件,加载distribution提供的函数的功能,并且判断该环境下是否可以运行此daemon。一切检测完毕之后,才会以shell script来启动、关闭、重启、查看daemon。

eg:

第二种方法:

  1. service [serviceName] [start|stop|restart|status|condrestart]
  2. service --status-all
  3. condrestart ===> 如果该服务已运行,可以重启这个服务,如果服务没有运行,则无法启动
  4. service --status-all ===> 显示出目前系统上所有服务的运行状态

注意:其实service仅仅是一个script,本质还是到/etc/init.d/下去执行指定的操作。

(2).super daemon

其实super daemon本身也是一个stand alone的服务,它本身是需要常驻内存中的。因此,super daemon(xinetd)自己的启动方式也与stand alone的启动方式一样。但是它管理的服务必须要在配置文件 /etc/xinetd.d/* 中设置为启动该daemon才行。

① 查看xinetd管理的服务有哪些启动了

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

disable = yes       ===>       取消此服务的启动

disable = no        ===>       启动该服务

六、super daemon配置文件

1.默认配置文件

/etc/xinetd.conf

log_type   ===>   日志文件系统类型

log_on_failure   ===>   发生错误时记录信息的目的地

log_on_success   ===>   成功启动或登录时的记录信息

cps   ===>   同一秒种的最大连接数

instances   ===>   同一个服务的最大同时连接数

per_source   ===>   同一来源的客户端最大连接数

v6only   ===>   是否支持ipv6

includedir   ===>   更多的设置文件所在目录

注意:如果super daemon管理的服务并没有配置文件,则使用该默认配置文件的参数。具体的每个服务的配置文件所在目录在默认配置文件的最后一行中指出。即includedir指明的目录。

2.服务配置文件

/etc/xinetd.d/xxx

Disable  [yes|no] ===>   服务启动与否

id [服务名称]   ===>   服务识别

Server [program完整文件名]   ===>   程序文件名

server_args [程序的相关参数]   ===>   程序参数

User  [用户所属UID] ===>   用户账号

group [用户组名]

socket_type [stream|dgram|raw]   ===>   数据包类型

protocol [tcp|udp]   ===>   数据包类型(通常用socket_type取代此设置)

Wait  [yes|no]  ===>   连接机制

instances [数字或unlimited]   ===>   最大连接数

per_source [数字或unlimited]   ===>   单用户来源

Caps [两个数字]   ===>   新连接限制

log_type [日志选项等级]   ===>   日志文件类型

log_on_success [PID|HOST|USERID|EXIT|DURATION]   ===>   设置日志状态

log_on_failure [PID|HOST|USERID|EXIT|DURATION]   ===>   设置日志状态

env [变量名称=变量内容]   ===>   额外变量设置

Port [一组数字 (小于65534)]   ===>   设置非正规端口号

redirect [IP port]   ===>   服务转址

includedir [目录名称]   ===>   调用外部设置

bind [IP]   ===>   服务接口锁定

interface [IP]   ===>   同bind

only_from [0.0.0.0|192.168.1.0/24|hostname|domainname]   ===>   防火墙机制

no_access [0.0.0.0|192.168.1.0/24|hostname|domainname]  ===>  防火墙机制

access_times [HH:HH-HH:MM]   ===>   时间控制

umask [000,777,022]   ===>   权限设置

Linux基础篇,系统服务(service)的管理的更多相关文章

  1. Linux基础篇九:用户管理

    查看当前用户的ID信息(也可以查看其他用户的ID信息) 每个进程都会有一个用户身份运行 cat /etc/passwd 账号的操作: useradd  (新建用户) 例题:   groupadd  s ...

  2. Linux基础篇学习——文件目录常用管理命令mkdir,cat,more,less,ln,file,cp,find,split,mv

    mkdir 创建目录 -p 递归创建目录 -v 显示创建信息 [root@zycentos7 ~]# mkdir -p {mylinux/{bin,conf,lib,logs,webapps/{doc ...

  3. Linux随笔-鸟哥Linux基础篇学习总结(全)

    Linux随笔-鸟哥Linux基础篇学习总结(全) 修改Linux系统语系:LANG-en_US,如果我们想让系统默认的语系变成英文的话我们可以修改系统配置文件:/etc/sysconfig/i18n ...

  4. 第一天 Linux基础篇

    课程介绍 1.认识Linux的不同版本 2.以及应用领域 3.文件和目录 4.Linux命令概述 5.Linux命令-文件 6.Linux命令-系统管理-磁盘管理 认识Linux 什么是操作系统  生 ...

  5. linux基础之用户及用户组管理

    本节内容 用户管理 1. 为什么需要用户? 1.linux是一个多用户系统 2.权限管理(权限最小化) 2. 用户相关文件 /etc/passwd -->用户基本信息 /etc/shadow - ...

  6. Linux基础篇,磁盘及文件使用管理

    在windows系统下,我们可以使用图形化界面很明了的看出当前硬盘使用量与某个文件的占用空间大小和文件数量.但是在linux系统中,我们应该如何得到这些信息呢? 当然是功能强大的df与du了. 一.d ...

  7. linux中注册系统服务—service命令的原理通俗

    能够使用service命令进行操作的,就是已经注册成为linux的系统服务了.window中也可以注册成为系统服务的办法. service命令用的次数真不少,就是比较多的关联点,用了很多次了,还是有些 ...

  8. Linux基础3(用户/组管理,rpm,yum,源码安装软件)

    用户管理 与用户相关的配置文件 /etc/passwd /etc/shadow /etc/skel /etc/defalut/useradd /etc/login.defs useradd userm ...

  9. Linux基础学习笔记5-软件管理

    包管理器 二进制应用程序的组成部分: 二进制文件.库文件.配置文件.帮助文件 程序包管理器: debian:deb文件.dpkg包管理器 redhat:rpm文件.rpm包管理器 rpm:Redhat ...

随机推荐

  1. Robotutor Scratch3.0 在线编程平台升级啦!

    Robotutor推出的Scratch3.0在线编程平台受到很多编程老师和学员的喜爱,上一个版本我们提供了用户注册,找回密码,个人项目的在线保存和浏览,社区分享评论. 我们根据实际的教学需要,用户角色 ...

  2. codecs打开不同步给编码的文件

    实例: with codecs.open(file=源文件,mode='命令',encoding='编(解)码方式') as 命名:

  3. SpringCloud之Hystrix服务降级入门全攻略

    理论知识 Hystrix是什么? Hystrix是由Netflix开源的一个服务隔离组件,通过服务隔离来避免由于依赖延迟.异常,引起资源耗尽导致系统不可用的解决方案.这说的有点儿太官方了,它的功能主要 ...

  4. Linux 中useradd命令的使用

    Linux 系统中通常都是root用户具有超级权限,超级用户root一般是不需要创建的,然而很多时候root用户不是任何人都可以使用的,毕竟最高权限的用户,任意使用的话,会对系统造成很多不必要的破坏. ...

  5. nuxt创建项目的步骤

    nuxt创建项目的步骤 1.基本步骤 // 创建package.json依赖管理文件 npm init -y // 在package.json文件中添加运行nuxt的命令,之后npm run dev启 ...

  6. vue-element框架通过blob进行后端token权限验证下载

    在项目中,后端要求下载时要进行后端的权限验证,发现a链接进行直接下载无法满足这个需求,只能通过blob对象来进行下载操作,翻阅大量资料最后实现该功能.以下是我个人的理解,如有不足,请各位大佬多指教 / ...

  7. org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'employeeId' not found. Available parameters are [page, map, param1, param2] 解决方法

    原因很简单就是没映射到接口添加 @Param 注解 ->@Param("map") 然后在mapper.xml map.employeeId 再次测试 已经解决 ->

  8. red hat重置密码

    步骤1:打开red hat 步骤2:看到如图画面时按e 进入到这个界面 步骤4:按e,看到如下画面后,选第二项,然后按e 步骤5:在“quiet"后面输入   空格single   后按b ...

  9. Django之Ajax传输数据

    MTV与MVC模型 MTV与MVC都是模型,只不过MTV是django自己定义的,具体看一下他们的意思 MTV模型(django) M:模型层(models.py) T:templates文件夹 V: ...

  10. hdu6026 dijkstra

    题目链接:http://icpc.njust.edu.cn/Problem/Hdu/6026/ 题意大致是:给定一个图,要求删边使他变成树,使得每个点到0的距离就是原图中0到这个点的最短路径.其实就是 ...