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. Add Scaffold

  2. 使用LD_PRELOAD注入程序

    LD_PRELOAD是Linux系统的一个环境变量,它可以影响程序的运行时的链接(Runtime linker),它允许你定义在程序运行前优先加载的动态链接库.这个功能主要就是用来有选择性的载入不同动 ...

  3. vscode中内置集成终端显示为git(bash.exe)

    按下快捷键 ctrl+` (其中的点是esc键下英文状态的点)调出vscode集成终端,也可从菜单栏的“查看→终端”中调出,默认显示的是系统cmd: 在设置中搜索 integrated shell 将 ...

  4. potel99se 文件损坏修复

    一直使用protel99se来做电路图,非常方便快捷.最近一次打开常用的一个ddb文件,提示失败,无法打开了.protel99使用的数据库文件实际上是access97 的mdb数据库,于是修改成mdb ...

  5. Electron使用electron-packager打包记录

    1.使用 JavaScript, HTML 和 CSS 构建跨平台的桌面应用 2.下载https://github.com/electron/electron-quick-start中的示例 3.在示 ...

  6. linux 命令全名

    su:Swith user  切换用户,切换到root用户cat: Concatenate  串联uname: Unix name  系统名称df: Disk free  空余硬盘du: Disk u ...

  7. 使用Allure+testNG自动生成漂亮强大的测试用例报告

    最近领导让我找一个可以每次打包自动生成测试用例的东西,jenkins或者idea都可以, 最后找到了这个allure,也踩了很多坑,废话不多说!,总结一下: 1 使用原生allure 添加依赖: &l ...

  8. redis 常用命令行

    一.key 相关: ()redis允许模糊查询 key(keys *) 有3个通配符 *.?.[] ()randomkey:返回随机key ()type key:返回key存储的类型 ()exists ...

  9. 五大常见算法策略之——动态规划策略(Dynamic Programming)

    Dynamic Programming   Dynamic Programming是五大常用算法策略之一,简称DP,译作中文是"动态规划",可就是这个听起来高大上的翻译坑苦了无数人 ...

  10. usaco1.1

    Your Ride Is Here #include <iostream> #include <string> #include <vector> using na ...