9.系统服务

9.1系统服务

可以把计算机理解为一个地点比如中关村大街系统服务理解为中关村大街的理发店、饭店、商场等等,每一个都是一个系统服务,为客户提供不同内容的服务

服务:常驻在内存中的程序,且可以提供一些系统或网络功能,那就是服务。

计算机中的系统服务有很多,比如

apache提供web服务

ftp提供文件下载上传服务

ssh提供了远程连接服务

防火墙提供了安全防护服务等等

9.2守护进程

Linux服务器的主要任务就是为本地或远程用户提供各种服务。通常 Linux系统上提供服务的程序是由运行在后台的守护进程( Daemon)来执行。一个实际运行中的 Linux系统一般会有多个这样的程序在运行。这些后台守护进程在系统开机后就运行了,并且在时刻地监听前台客户地服务请求,一旦客户发出了服务请求,守护进程便为它们提供服务。

9.3特殊守护进程

系统初始化进程是一个特殊的的守护进程,其PD为1,它是所有其他守护进程的父进程或者祖先进程。也就是说,系统上所有的守护进程都是由系统初始化进程进行管理的(如启动、停止等)。

系统上所有的守护进程都是由系统初始化进程进行管理的(如启动、停止等)

systemV(红帽7之前)

ini按照优先级的高低,先后唤醒其他服务

服务有依赖关系

多命令协同工作管理服务

命令包括 init service chkconfig

systemd

并行启动,速度更快

服务依赖性的自我检查

一个命令管理服务

向下兼容int服务脚本

命令就一个systemctl

9.4服务分类

  • 独立服务

    采用 systemd管理,服务独立的运行在内存中,服务响应速度快,但占用更多内存。
  • 非独立服务

    xinetd服务本身独立存在,管理一些服务。用户通过 xinetd服务请求其管理的一些服务,然后 xinetd返回请求服务的回复给用户,相当代理。

9.4.1独立服务

独立服务运行在内存中,服务响应块,但占用更多内存。

独立服务的服务启动脚本 都在目录 /usr/lib/systemd/system里

systemctl命令

systemctl [command] [unit]

command主要有

start:立刻启动后面接的unit

stop:立刻关闭后面接的unit。

restart:立刻关闭后启动后面接的unt,亦即执行stop再 start的意思。

reload:不关闭unit的情况下,重新载入配置文件,让设置生效。

enable:设置下次开机时,后面接的unit会被启动

disable:设置下次开机时,后面接的unit不会被启动。

status:目前后面接的这个unt的状态,会列出有没有正在执行、开机时是否启动等信息。

is- active:目前有没有正在运行中。

is- enabled:开机时有没有默认要启用这个unit。

kill:不要被kill这个名字吓着了,它其实是向运行unit的进程发送信号

show:列出unit的配置。

mask:注销unit,注销后你就无法启动这个unit了

unmask:取消对unit的注销

部署独立服务 vsftpd

查看是否安装

[wangzirui@laotie system]$ yum list vsftpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ap.stykers.moe
* extras: ap.stykers.moe
* updates: ap.stykers.moe
已安装的软件包
vsftpd.x86_64 3.0.2-25.el7 installed

Systemctl status vsftpd

可以查看当前vsftpd的状态

[wangzirui@laotie system]$ systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)

Loaded是是否开机启动,是disabled。。Active是指是否现在启动,是Inactive,所以这个服务现在是没启动呢。

启动服务

sytemctl start vsftpd

[root@laotie system]# systemctl start vsftpd

没有回执说明已经启动成功。

现在来查看vsftpd的状态

[wangzirui@laotie system]$ systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
Active: active (running) since 一 2020-02-10 22:20:40 CST; 1min 17s ago
Process: 4204 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
Main PID: 4206 (vsftpd)
Tasks: 1
CGroup: /system.slice/vsftpd.service
└─4206 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf 2月 10 22:20:40 laotie systemd[1]: Starting Vsftpd ftp daemon...
2月 10 22:20:40 laotie systemd[1]: Started Vsftpd ftp daemon.

关闭vsftpd

[wangzirui@laotie system]$ systemctl stop vsftpd
[wangzirui@laotie system]$ systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
Active: inactive (dead) 2月 10 22:20:40 laotie systemd[1]: Starting Vsftpd ftp daemon...
2月 10 22:20:40 laotie systemd[1]: Started Vsftpd ftp daemon.
2月 10 22:24:15 laotie systemd[1]: Stopping Vsftpd ftp daemon...
2月 10 22:24:15 laotie systemd[1]: Stopped Vsftpd ftp daemon.

关于restart和reload

restart 之后 他的Main PID会改变,而reload之后Main PID不会改变。

关于开机是否启动

Systemctl enable vsftpd

[wangzirui@laotie system]$ systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

相当于把vsftpd.service连接到了multi-user.target.wants.然后实现了开机启动。这时候我们查看

[wangzirui@laotie system]$ systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
Active: active (running) since 一 2020-02-10 22:27:53 CST; 9min ago
Main PID: 4508 (vsftpd)
CGroup: /system.slice/vsftpd.service
└─4508 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf 2月 10 22:27:53 laotie systemd[1]: Starting Vsftpd ftp daemon...
2月 10 22:27:53 laotie systemd[1]: Started Vsftpd ftp daemon.

Loaded变成了enabled。表示他开机就启动了

要不想让他启动了就disable就行了。

[wangzirui@laotie system]$ systemctl disable vsftpd
Removed symlink /etc/systemd/system/multi-user.target.wants/vsftpd.service.

禁用服务

[wangzirui@laotie system]$ systemctl mask vsftpd
Created symlink from /etc/systemd/system/vsftpd.service to /dev/null.

现在这种状态不能开始,不能暂停。

那有没有可以直接判定一个服务是否在服务呢?

Systemctl is-active vsftpd

[root@laotie system]# systemctl is-active vsftpd
active

9.5非独立服务

xinetd:超级守护进程,可以把—些小服务放到κinet里进行托管。托管后的好处就是可以使用 xinetd强大的参数来控制这些服务,并且增强安全性。

Xinetd提供类似于 inetd+ TCP Wrappers的功能,但是更加强大和安全。后面 xinetd已经取代了 inetd,并且提供了访问控制、加强的日志和资源管理功能。

TCP Wrappers是一个应用层的访问控制程序,其原理是在服务器向外提供的TCP服务上包裹一层安全检测机制。外来的连接请求首先要通过这层安全检测,获得认证之后才能被系统服务接收。

相关目录

xinetd服务的主配置文件:etc/ xinetd.conf

用于存放被托管的服务的目录:/etc/ xinetd.d/

部署一个非独立服务telnet

首先安装这个服务的服务端和客户端还有超级守护进程xinetd

[root@laotie system]# yum -y install telnet-server telnet xinetd

-y的意思就是默认都是Y,安装的时候省了来回的输入y了。

接下来进入/etc/xinetd.d/然后新建一个telnet的文件

[root@laotie system]# cd /etc/xinetd.d
[root@laotie xinetd.d]# vim telnet

内容为下面的:

service telnet

{flags=REUSE
socket_type= stream
wait = no
user= root
server=/usr/sbin/in.telnetd
log_on_ failure += USERID
disable= no }

参数的声明

可以设置为yes或no,设置为yes将禁用一个服务,详见fags的 disable标签

​ disable =no

指定失败时登记的信息。总是登记表明错误性质的消息,默认时不登记仼何信息。该属性攴持所有操作符。∪ SERID

通过RFC1413调用捕获客户机用户的∪D。只可用于多线程的流服务

log on failure += USERID

使用的 TCP/IP socket类型,值可能为stam(TCP), dgram(UDP),raW和 Iseqpacket(可靠的有序数据包)

​ socket type= stream

指定传送给该进程的参数,但是不包括服务程序名

​ server args =--daemon

用来设定连接速率。它需要两个参数,第一个参数表示每秒可以处理的连接数,如果超过了这个连接数时,之后进入的连接将被暂时停止处理;第二个参数表示停止处理多少秒后,继续处理先前暂停处理的连接

cps=2530

指定该服务使用的协议,其值必须是在 etc/protocols中定义的。如果不指定,使用该项服务的默认协议

​ protocol = tcp

这个属性有两个可能的值。如果是yes,那么 xinetd会启动对方请求的进程,并停止处理该项服务的其他请求直到进程终止,适合于单线程服务;如果是no,那xnet会为每个请求启动的一个进程,而不管先前启动的进程的状态,适合于多线程服务

wait=no

设置服务进程的UD。若 xinetd的有效UD不是0,该属性无效

​ user=root

要激活的进程,必须指定完整的路径

​ server =/usr/sbin/sshd

指定传送给该进程的参数,但是不包括服务程序名

​ server= args

用空格分开的允许访问服务的客户机列表。如果不为该属性指定一个值,就拒绝仼何人访问这项服务。该属性支持所有操作符。

only_from=192.168.1.0/24

no_access=192.168.1.20192.168.1.200

最大连接数为3

​ instances =3

每个源P只能有1个连接

​ per source =1

只能9:00到18:00才能ssh连接

​ access times =9: 00-18: 00

指定日志记录到arog/ xinetd ssh. log里

​ log type=fe/ ar/log/xinetd_ssh. log#指定日志记录到 var/log/xinetd ssh. log里

服务端口

​ pot=7722

[root@laotie xinetd.d]# systemctl start xinetd

怎么证明是不是开启了,可以直接看网络的状态,用netstat这个命令

[root@laotie wangzirui]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1076/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1354/master
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1396/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1080/sshd
tcp6 0 0 ::1:631 :::* LISTEN 1076/cupsd
tcp6 0 0 :::23 :::* LISTEN 1084/xinetd
tcp6 0 0 ::1:25 :::* LISTEN 1354/master
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::22 :::* LISTEN 1080/sshd

可以看到23这个端口号,所以就可以进行talnet的启动了,

[wangzirui@laotie ~]$ telnet localhost
Trying ::1...
Connected to localhost.
Escape character is '^]'. Kernel 3.10.0-1062.el7.x86_64 on an x86_64
laotie login: wangzirui
Password:
Last login: Tue Feb 11 00:15:56 on pts/0

linux 基础入门(9) 系统服务 systemctl 与 xinted的运用的更多相关文章

  1. Linux基础入门教程

    Linux基础入门教程 --------- Linux学习路径 Linux学习者,常常不知道自己改怎么学习linux:Linux初级,也就是入门linux前提是需要有一些计算机硬件相关的知识或是有一下 ...

  2. Linux 基础入门(新版)”实验报告一~十二

    实验报告 日期: 2015年9月15日 一.实验的目的与要求 熟练地使用 Linux,本实验介绍 Linux 基本操作,shell 环境下的常用命令. 二.主要内容 1.Linux 基础入门& ...

  3. Linux基础入门学习笔记20135227黄晓妍

    学习计时:共24小时 读书:1小时 代码:8小时 作业:3小时 博客:12小时 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用L ...

  4. Linux 基础入门 第二周9.21~9.27

    一.学习内容 本周主要学习内容主要贴合: 在进行<深入理解计算机系统>这门课的实验中没有遇到什么大问题,学习内容与上周实验<linux基础入门>有相似之处.本实验中的内容比较贴 ...

  5. Linux 基础入门----推荐课程

    Linux 基础入门课程:https://www.shiyanlou.com/courses/1 很好的一门Linux基础课,精炼.简洁!推荐! 课程内容: 第1节 Linux 系统简介 https: ...

  6. 在学习linux基础入门时的一些问题总结(1)

    本周在实验楼完成了<linux基础入门>的21个实验,虽然之前已经学习过linux的相关课程,对linux下的命令也有一些了解和实践,但完成这21个实验以及35个练习题仍然遇到了许多的问题 ...

  7. 腾讯云-Linux 基础入门

    Linux 基础入门 目录操作 任务时间:5min ~ 10min 创建目录 使用 mkdir 命令创建目录 mkdir $HOME/testFolder # $HOME 当前用户的家目录  root ...

  8. Linux基础入门之网络属性配置

    Linux基础入门之网络属性配置 摘要 Linux网络属性配置,最根本的就是ip和子网掩码(netmask),子网掩码是用来让本地主机来判断通信目标是否是本地网络内主机的,从而采取不同的通信机制. L ...

  9. Linux基础入门 - 3

    第四节 Linux 目录结构及文件基本操作 4-1.Linux目录结构 Linux 的目录与 Windows 的目录的实现机制是完全不同的.一种不同是体现在目录与存储介质(磁盘,内存,DVD 等)的关 ...

随机推荐

  1. set(待整理)

    set集合容器:实现了红黑树的平衡二叉检索树的数据结构,插入元素时,它会自动调整二叉树的排列,把元素放到适当的位置,以保证每个子树根节点键值大于左子树所有节点的键值,小于右子树所有节点的键值:另外,还 ...

  2. widows 10 下解决在npm install python 环境报错的问题

    1.使用管理员打开cmd 2.安装 node-gyp; gyp是一种根据c++源代码编译的工具,node-gyp就是为node编译c++扩展的时候使用的编译工具. npm install -g nod ...

  3. Fibonacci Nim(斐波那契尼姆)游戏

    游戏描述: Fibonacci Nim是Nim游戏的变种,其规则为两名玩家从一堆硬币中交替移除硬币,第一步中,不允许玩家拿走所有硬币,也不允许不取,并且在每次后续移动中,移除的硬币数量最多可以是上一次 ...

  4. 【故障公告】再次遭遇SQL语句执行超时引发网站首页访问故障

    非常抱歉,昨天 18:40~19:10 再次遭遇上次遇到的 SQL 语句执行超时引发的网站首页访问故障,由此您带来麻烦,请您谅解. 上次故障详见故障公告,上次排查下来以为是 SQL Server 参数 ...

  5. IIS 无法访问请求的页面,因为该页的相关配置数据无效。

    解决方法:控制面板-->程序和功能-->打开或关闭windows功能-->角色的这里,如果还未安装“web服务器(IIS)”,则选择“添加”.如果已经安装了,则选择“web服务器(I ...

  6. Mybatis基础(二)

    Mybatis连接池 Mybatis连接池提供了三种配置方式,配置的位置在SqlMapConfig.xml的dataSource标签中,其type属性就是配置连接池的种类.type的可取值 1.POO ...

  7. 并发队列之PriorityBlockingQueue

    这一篇说一下PriorityBlockingQueue,引用书中的一句话:这就是带优先级的无界阻塞队列,每次出队都返回优先级最高或者最低的元素(这里规则可以自己制定),内部是使用平衡二叉树实现的,遍历 ...

  8. Java 设置Excel自适应行高、列宽

    在excel中,可通过设置自适应行高或列宽自动排版,是一种比较常用的快速调整表格整体布局的方法.设置自适应时,可考虑2种情况: 1.固定数据,设置行高.列宽自适应数据(常见的设置自适应方法) 2.固定 ...

  9. ROS之服务

    服务(service)是另一种在节点之间传递数据的方法,服务其实就是同步的跨进程函数调用,它能够让一个节点调用运行在另一个节点中的函数. 我们就像之前消息类型一样定义这个函数的输入/输出.服务端(提供 ...

  10. Python小白入门题一——文件增删改

    题目描述:用python对文件进行增(创建一个文件).删(删除一个文件).改(重命名)操作. 说明:新建了一个文件夹files存放新增的两个文件,随后这两个文件被批量重命名成“数字.txt”,之后这两 ...