十一、服务介绍及端口

服务管理简介
服务器的作用主要是什么?主要是通过网络来提供服务,比如apache提供一个web服务,mysql提供一个数据库服务,dns提供一个域名解析服务,ftp提供一个文件服务器的服务,dhcp提供一个地址分配服务等等。

按功能来分类
系统服务:服务的对象· 主要是系统本身和系统用户。
网络服务:通过网络过提供给客户端相应的服务。(比如web,ftp)

Daemon和Service
daemon:中文是守护神,计算机里面叫守护进程:守护进程是真正提供服务的那个程序。比如web=httpd、httpd就是web的守护进程、ftp=vsftpd、dns=named samba=smbd nmbd 这些d就是daemon的意思。
service:服务。是由某个守护进程提供的。

服务端和客户端:
Client/Server

服务和端口的关系
区分服务的端口号的对应关系:
80 httpd
23 telnet
22 sshd
21 vsftpd
53 named(dns)
67 dhcpd
25 smtp(mail)

端口号可以通过/etc/services 此文件查看。

查看服务端口运行状态
netstat -tlunp | grep 873(xinetd)
lsof -i:873 查看该端口号上运行的是哪个服务

systemd进程
1、Systemd是系统守护进程,所有的系统服务都是有Systemd来启动的,它的PID是1,取代原来CentOS6的init.d。
2、Systemd 提供了一些管理命令,涉及到系统管理的方方面面,它包括了:systemctl、systemd-analyze、hostnamectl、localectl、 timedatectl、loginctl等多个管理工具。
3、systemd服务会常驻内存的,因此执行速度比较快,并且实现了并发式的服务启动,解决了服务的依赖性问题。

systemctl命令
systemctl是 Systemd 的主命令,用于管理系统和服务状态
systemctl poweroff #系统关机
systemctl reboot #重新开机

Unit
Systemd 可以管理所有系统资源。不同的资源统称为 Unit(单位)。
unit类型
Unit 一共分成12种类型:
类型含义Service unit系统服务Target unit多个 Unit 构成的一个组Device Unit硬件设备Mount Unit文件系统的挂载点Automount Unit自动挂载点Path Unit文件或路径Scope Unit不是由 Systemd 启动的外部进程Slice Unit进程组Snapshot UnitSystemd 快照,可以切回某个快照Socket Unit进程间通信的 socketSwap Unitswap 文件Timer Unit定时器

unit管理
语法:systemctl 管理命令 unitname管理命令描述status查看状态start开启stop关闭restart重启reload加载配置文件enable开机启动disable关闭开机启动is-active查看服务状态是否启动is-enabled查看服务是否开机自启动list-dependencies 【unitname】查看单元依赖mask禁止服务,无法启动或开机 启动unmask解除mask

单个unit状态查看
命令:systemctl [command] [unit]
command主要包含:
status:目前后面接的这个 unit 的状态,会列出有没有正在执行、开机默认执行否、登录等信息等。
is-active :目前有没有正在运行中
is-enable :开机时有没有默认要启用这个unit
is-failed:启动失败的unit
show:显示某个 Unit 的所有底层参数

status显示的unit状态类型
Loaded是下次开机启动的状态,有以下几种基本状态:
enabled:这个daemon将在开机时被执行
disabled:这个daemon在开机时不会被执行
static:这个daemon不可以自己启动(enable不可),不过可能会被其他的enabled的服务来唤醒(依赖的服务)
mask:这个daemon无论如何都无法被启动,因为已经被强制注销(非删除)。可通过 systemctl unmask 方式改回原本状态。
Active是当前的状态,有以下几种基本状态:
active (running):正有一只或多只程序正在系统中执行的意思,举例来说,正在执行中的vsftpd就是这种模式。 active (exited):仅执行一次就正常结束的服务,目前并没有任何程序在系统中执行。
active (waiting):正在执行当中,不过还再等待其他的事件才能继续处理。
inactive:这个服务目前没有运行的意思。

当前系统的所有unit状态(了解)
systemctl list-units # 列出正在运行的 Unit
systemctl list-units –all # 列出所有Unit,包括没有找到配置文件的或者启动失败的
systemctl list-units –all –state=inactive # 列出所有没有运行的 Unit
systemctl list-units –failed # 列出所有加载失败的 Unit
systemctl list-units –type=service # 列出所有正在运行的、类型为 service 的 Unit

查看服务依赖(了解)
systemctl list-dependencies [unit] #列出unit依赖
systemctl list-dependencies –all [unit] #展开显示依赖关系
systemctl list-dependencies [unit] [–reverse] #反向查询依赖,unit被谁依赖

Target
启动计算机的时候,需要启动大量的 Unit。如果每一次启动,都要一一写明本次启动需要哪些 Unit,显然非常不方便。Systemd 的解决方案就是 Target。
简单说,Target 就是一个 Unit 组,包含许多相关的 Unit 。启动某个 Target 的时候,Systemd 就会启动里面所有的 Unit。从这个意义上说,Target 这个概念类似于”状态点”,启动某个 Target 就好比启动到某种状态。
传统的init启动模式里面,有 RunLevel 的概念,跟 Target 的作用很类似。不同的是,RunLevel 是互斥的,不可能多个 RunLevel 同时启动,但是多个 Target 可以同时启动。例如
默认启动图形tatget,这个target又依赖了multi-user.target等其他target。

target管理
$ systemctl list-unit-files –type=target # 查看当前系统的所有 Target
$ systemctl list-dependencies multi-user.target # 查看一个 Target 包含的所有 Unit
$ systemctl get-default # 查看启动时的默认 Target
$ sudo systemctl set-default multi-user.target # 设置启动时的默认 Target
$ sudo systemctl isolate multi-user.target #切换 Target

常见的target
graphical.target:就是文字加上图形界面,这个项目已经包含了下面的
multi-user.target. multi-user.target:纯文本模式.

rescue.target:在无法使用root登陆的情况下,systemd在开机时会多加一个额外的暂时系统,与你原本的系统无关。
emergency.target:紧急处理系统的错误,还是需要使用root登陆的情况,在无法使用rescue.target 时,可以尝试使用这种模式.

shutdown.target:就是关机的流程。
getty.target:可以设置你需要几个tty之类的,如果想要降低tty的项目,可以修改这个配置文件.

Target 与 传统 RunLevel 的联系和区别
传统Runlevel target name ->软链接
Runlevel 0 runlevel0.target -> poweroff.target
Runlevel 1 runlevel1.target -> rescue.target
Runlevel 2 runlevel2.target -> multi-user.target
Runlevel 3 runlevel3.target -> multi-user.target
Runlevel 4 runlevel4.target -> multi-user.target
Runlevel 5 runlevel5.target -> graphical.target
Runlevel 6 runlevel6.target -> reboot.target

systemd与init进程的主要差别如下(了解)
1.默认的 RunLevel(在/etc/inittab文件设置)现在被默认的 Target 取代,位置是/etc/systemd/system/default.target,通常符号链接到graphical.target(图形界面)或者multi-user.target(多用户命令行)。
2.启动脚本的位置,以前是/etc/init.d目录,符号链接到不同的 RunLevel 目录 (比如/etc/rc3.d、/etc/rc5.d等),现在则存放在/lib/systemd/system和/etc/systemd/system目录。
3.配置文件的位置,以前init进程的配置文件是/etc/inittab,各种服务的配置文件存放在/etc/sysconfig目录。现在的配置文件主要存放在/lib/systemd目录,在/etc/systemd目录里面的修改可以覆盖原始设置。

Original: https://www.cnblogs.com/wang-yongxu/p/16450448.html
Author: Lyon-w
Title: 十一、服务介绍及端口

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/581975/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • MySQL多实例安装部署

    MySQL多实例安装部署 1、MySQL多实例概念 多实例就是在一台服务器上同时开启多个不同的数据库服务端口(例如3306、3307),同时运行多个MYSQL服务进程,这些服务进程…

    Linux 2023年6月7日
    0109
  • 搭建mount+nfs远程挂载

    需求背景: 192.168.10.100 源服务器 目录:/root/test 目录属主属组普通用户,权限777 192.168.10.111 目标服务器 目录:/root/tes…

    Linux 2023年6月8日
    093
  • [ Linux ] 设置服务器开机自启端口

    https://www.cnblogs.com/yeungchie/ 需要用到的工具: crontab iptables crontab.set SHELL=/bin/bash P…

    Linux 2023年6月7日
    095
  • CH343芯片应用—Windows驱动安装与使用

    CH343属于沁恒第三代USB转串口芯片系列的单串口型号,基于经典版CH340芯片完成技术革新,实现USB转高速异步串口,支持最高6Mbps串口波特率。芯片支持使用厂商提供的VCP…

    Linux 2023年6月7日
    083
  • 2-第一个Django程序

    第一个Django程序 从本章节开始将通过实现一个投票应用程序,来让用户逐步的了解Django。这个程序由两步分组成: 公共站点,允许用户访问进行投票,和查看投票。 站点管理,允许…

    Linux 2023年6月7日
    098
  • 搭建Nginx四层反向代理

    需求背景: 前段时间公司因为业务需求需要部署一个正向代理,我已经分享出来了https://www.cnblogs.com/Dfengshuo/p/11911406.html,现有因…

    Linux 2023年6月8日
    0100
  • 你真的了解JAVA中对象和类、this、super和static关键字吗

    作者:小牛呼噜噜 | https://xiaoniuhululu.com计算机内功、JAVA底层、面试相关资料等更多精彩文章在公众号「小牛呼噜噜 」 Java对象究竟是什么? 创建…

    Linux 2023年6月6日
    099
  • 高通MSM8998 ABL的调试

    高通在MSM8998上引入了UEFI,用来代替LK(Little Kernel)。高通UEFI由XBL和ABL两部分组成。XBL负责芯片驱动及充电等核心应用功能。ABL包括芯片无关…

    Linux 2023年6月7日
    072
  • Ajax 技术(四)

    目的: 熟练掌握AJAX基础和XMLHttpRequest对象及其方法。 重点掌握AJAX发送请求的具体过程,及过程中的不同状态。 要求: 实现用户注册表单中,使用AJAX技术根据…

    Linux 2023年6月13日
    0102
  • 分布式锁

    非分布式下使用锁 利用版本号来检测数据是否发生变化,从而判断是否能进行更新 JAVA 使用比较交换机制-CAS(Compare And Swap)机制实现 i++非线程安全,使用原…

    Linux 2023年6月7日
    086
  • 2021年3月-第03阶段-前端基础-JavaScript基础语法-JavaScript基础第01天

    1 – 编程语言 1.1 编程 编程: 就是让计算&amp…

    Linux 2023年6月8日
    082
  • NTP服务器实现

    时间服务器是一种计算机网络仪器,它从参考时钟获取实际时间,再利用计算机网络把时间信息传递给用户。虽然还有一些比较少用或过时的协议仍然在使用,但现时最重要及广泛使用,作为时间信息发送…

    Linux 2023年6月7日
    080
  • SSH升级版本–8.2p1

    前期准备 执行yum update openssh先升级下. 反正官方提供的这种升级是没问题的。如果之前手动编译操作过openssh的升级,变更了默认配置文件路径什么的请自行测试。…

    Linux 2023年6月8日
    079
  • go-select 机制

    select 的用法与 switch 语言非常类似,由 select 开始一个新的选择块,每个选择条件由 case 语句来描述。 与 switch 语句相比,select 有比较多…

    Linux 2023年6月13日
    084
  • MySQL-连接数据库

    连接数据库在操作数据库之前,需要连接它,输入命令:mysql -u用户名 -p密码。 在你自己本机上连接数据库用上述方式是可以的,不过在平台上连接数据库还需要加上一句-h127.0…

    Linux 2023年6月8日
    082
  • Linux 配置Maven(避免踩坑篇)

    前言:请各大网友尊重本人原创知识分享,谨记本人博客: 南国以南i 二、下载好的maven安装包放在磁盘的 /usr/local/ 目录下,如下图: 三、解压该压缩文件 tar -z…

    Linux 2023年5月27日
    087
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球