linux 基础入门(9) 系统服务 systemctl 与 xinted的运用
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的运用的更多相关文章
- Linux基础入门教程
Linux基础入门教程 --------- Linux学习路径 Linux学习者,常常不知道自己改怎么学习linux:Linux初级,也就是入门linux前提是需要有一些计算机硬件相关的知识或是有一下 ...
- Linux 基础入门(新版)”实验报告一~十二
实验报告 日期: 2015年9月15日 一.实验的目的与要求 熟练地使用 Linux,本实验介绍 Linux 基本操作,shell 环境下的常用命令. 二.主要内容 1.Linux 基础入门& ...
- Linux基础入门学习笔记20135227黄晓妍
学习计时:共24小时 读书:1小时 代码:8小时 作业:3小时 博客:12小时 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用L ...
- Linux 基础入门 第二周9.21~9.27
一.学习内容 本周主要学习内容主要贴合: 在进行<深入理解计算机系统>这门课的实验中没有遇到什么大问题,学习内容与上周实验<linux基础入门>有相似之处.本实验中的内容比较贴 ...
- Linux 基础入门----推荐课程
Linux 基础入门课程:https://www.shiyanlou.com/courses/1 很好的一门Linux基础课,精炼.简洁!推荐! 课程内容: 第1节 Linux 系统简介 https: ...
- 在学习linux基础入门时的一些问题总结(1)
本周在实验楼完成了<linux基础入门>的21个实验,虽然之前已经学习过linux的相关课程,对linux下的命令也有一些了解和实践,但完成这21个实验以及35个练习题仍然遇到了许多的问题 ...
- 腾讯云-Linux 基础入门
Linux 基础入门 目录操作 任务时间:5min ~ 10min 创建目录 使用 mkdir 命令创建目录 mkdir $HOME/testFolder # $HOME 当前用户的家目录 root ...
- Linux基础入门之网络属性配置
Linux基础入门之网络属性配置 摘要 Linux网络属性配置,最根本的就是ip和子网掩码(netmask),子网掩码是用来让本地主机来判断通信目标是否是本地网络内主机的,从而采取不同的通信机制. L ...
- Linux基础入门 - 3
第四节 Linux 目录结构及文件基本操作 4-1.Linux目录结构 Linux 的目录与 Windows 的目录的实现机制是完全不同的.一种不同是体现在目录与存储介质(磁盘,内存,DVD 等)的关 ...
随机推荐
- java异步调用方法
一.利用多线程 直接new线程 Thread t = new Thread(){ @Override public void run() { longTimeMethod(); } }; 使用线程池 ...
- 之前见汤姆大叔 写过一系列的 js 深入理解 呢 很是感觉经典
最近要把这些给翻个遍 加油 js 隐式全局变量 读后感 1:js 没有变量名称是否重复定义的检查,在cshrp里有这样的检查, 没有变量名称重复的检查,这样 当变量名称 重复定义的时候 相同命名的变 ...
- Cobalt_Strike扩展插件
Cobalt_Strike3.14下载: https://download.csdn.net/download/weixin_41082546/11604021 https://github.com/ ...
- PairProgramming 个人第三次作业
Github地址:主仓库 https://github.com/Yanyixiao/PairProgramming.git Partner博客园地址: https://www.cnblogs.com/ ...
- Liunx(centos8)下的yum的基本用法和实例
yum 命令 Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指定的 ...
- ThinkPHP 5.0.7 + MySQL 构建RESTful API的小程序---02-ThinkPHP5中的orm的模型关联
ThinkPHP5.0中的操作ORM的一对一,一对多,多对多的操作: 由以下表举例: banner表的设计 id name description delete_time update_time 1 ...
- 数据结构与算法 --- js描述队列
js描述队列 队列的特性是只能在队尾插入元素,在队首删除元素,先进先出: 队列被用在很多地方,比如提交操作系统执行的一系列进程,打印任务池,模拟现实中的排队: //队列类 function Queue ...
- 前端url参数中带有callback并产生错误
错误截图: 初步诊断是由于后端返回值的数据格式不正确造成的 解决方式: 1).接受在springmvc中接受callback参数 2).将对象转为Object 3).拼接callback方法,其中返回 ...
- java核心技术----Object类
package java.lang; /** * Class {@code Object} is the root of the class hierarchy. * Every class has ...
- 一口气说出 9种 分布式ID生成方式,面试官有点懵了
整理了一些Java方面的架构.面试资料(微服务.集群.分布式.中间件等),有需要的小伙伴可以关注公众号[程序员内点事],无套路自行领取 本文作者:程序员内点事 原文链接:https://mp.weix ...