Linux基础篇,系统服务(service)的管理
一、服务是什么?
用白话文说,服务就是“常驻在内存中的进程”,用来提供一些系统或网络功能。
二、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
第一种方法:
/etc/init.d/serverName [start|stop|restart|status|condrestart]
condrestart ===> 如果该服务已运行,可以重启这个服务,如果服务没有运行,则无法启动
从/etc/init.d/文件目录下启动服务会先去检测环境查找配置文件,加载distribution提供的函数的功能,并且判断该环境下是否可以运行此daemon。一切检测完毕之后,才会以shell script来启动、关闭、重启、查看daemon。
eg:

第二种方法:
service [serviceName] [start|stop|restart|status|condrestart]
service --status-all
condrestart ===> 如果该服务已运行,可以重启这个服务,如果服务没有运行,则无法启动
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管理的服务有哪些启动了
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)的管理的更多相关文章
- Linux基础篇九:用户管理
查看当前用户的ID信息(也可以查看其他用户的ID信息) 每个进程都会有一个用户身份运行 cat /etc/passwd 账号的操作: useradd (新建用户) 例题: groupadd s ...
- 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 ...
- Linux随笔-鸟哥Linux基础篇学习总结(全)
Linux随笔-鸟哥Linux基础篇学习总结(全) 修改Linux系统语系:LANG-en_US,如果我们想让系统默认的语系变成英文的话我们可以修改系统配置文件:/etc/sysconfig/i18n ...
- 第一天 Linux基础篇
课程介绍 1.认识Linux的不同版本 2.以及应用领域 3.文件和目录 4.Linux命令概述 5.Linux命令-文件 6.Linux命令-系统管理-磁盘管理 认识Linux 什么是操作系统 生 ...
- linux基础之用户及用户组管理
本节内容 用户管理 1. 为什么需要用户? 1.linux是一个多用户系统 2.权限管理(权限最小化) 2. 用户相关文件 /etc/passwd -->用户基本信息 /etc/shadow - ...
- Linux基础篇,磁盘及文件使用管理
在windows系统下,我们可以使用图形化界面很明了的看出当前硬盘使用量与某个文件的占用空间大小和文件数量.但是在linux系统中,我们应该如何得到这些信息呢? 当然是功能强大的df与du了. 一.d ...
- linux中注册系统服务—service命令的原理通俗
能够使用service命令进行操作的,就是已经注册成为linux的系统服务了.window中也可以注册成为系统服务的办法. service命令用的次数真不少,就是比较多的关联点,用了很多次了,还是有些 ...
- Linux基础3(用户/组管理,rpm,yum,源码安装软件)
用户管理 与用户相关的配置文件 /etc/passwd /etc/shadow /etc/skel /etc/defalut/useradd /etc/login.defs useradd userm ...
- Linux基础学习笔记5-软件管理
包管理器 二进制应用程序的组成部分: 二进制文件.库文件.配置文件.帮助文件 程序包管理器: debian:deb文件.dpkg包管理器 redhat:rpm文件.rpm包管理器 rpm:Redhat ...
随机推荐
- mongo请求超时
no_cursor_timeout=True参数的使用 实例: import pymongo handler = pymongo.MongoClient().db.col with handler.f ...
- token iviewAdmin + php 登录验证解决方案
思路: php 开启 Session 登录时 生成token,前端存下,然后每次走接口 验证下Session里的token和前端发过来的token是否一样. 遇到问题:后端 每次PHP Session ...
- 今天开dev的时候,config update一下别人的,但是忘了自己改过目录了,导致光看ip,想了半天,为什么接口不对
今天开dev的时候,config update一下别人的,但是忘了自己改过目录了,导致光看ip,想了半天,为什么接口不对 baseUrl: { // // dev: 'http://1 ...
- Asp.net 的DropDownList 控件动态加载
在做连接数据库表,在页面上用DropDownList 下拉框查询某条数据时,因为数据库里的数据,随时都有可能增加或减少,而下拉框关联的某个字段的值并不一定是固定的. 表信息: CREATE TABLE ...
- MySQL InnoDB表的碎片量化和整理(data free能否用来衡量碎片?)
网络上有很多MySQL表碎片整理的问题,大多数是通过demo一个表然后参考data free来进行碎片整理,这种方式对myisam引擎或者其他引擎可能有效(本人没有做详细的测试).对Innodb引擎是 ...
- oracle数据库表用序列实现主键自增长
原理注意:序列和触发器必须建立在同一个用户名下否则运行出错1.建立数据表create table 表名( userid number(10) primary key, ...
- ES6的Array.from()和Array.fill()方法
今天处理数据时用到了Array.from()和Array.fill()方法,平时用的不多,这里记一下. 我的需求是要把字符串'abc',处理为[{exaple: 'abc_001.bcd'}, {ex ...
- 第四周java实验
实验四 类与对象的定义及使用 实验时间 2018-9-20 1.实验目的与要求 (1) 理解用户自定义类的定义: 类是具有相同属性和行为的一组对象的集合.java中,用构造器构造并初始化对象. 类是构 ...
- python学习(五)之列表元素的积
前几天,学完python的列表之后,我们老师留了一道关于列表的题目.几天后,老师讲解习题,很荣幸成为被老师点名讲解自己代码的其中之一下面把我的想法分享一下. 描述一个由n(n>1)个数字组成的列 ...
- Spring03——有关于 Spring AOP 的总结
本文将为各位带来 Spring 的另一个重点知识点 -- Spring AOP.关注我的公众号「Java面典」,每天 10:24 和你一起了解更多 Java 相关知识点. 什么是 AOP 面向切面编程 ...