十一、服务介绍及端口

服务管理简介
服务器的作用主要是什么?主要是通过网络来提供服务,比如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)

大家都在看

  • CentOS 用户与群组

    Linux 系统中存在一个超级用户 root ,可以做任何操作。Linux 系统中每个用户都有自己独立的账户,有些命令运行需要切换 root 身份,用户是分组的。 1.1、切换用户…

    Linux 2023年6月8日
    089
  • Python中使用 for 循环来拿遍历 List 的值

    常规版本 简单的 for 循环遍历 x_n = ["x1","x2","x3"] for x in x_n: print…

    Linux 2023年6月7日
    086
  • linux 安装docker

    https://www.cnblogs.com/kingsonfu/p/11576797.html posted @2022-04-29 17:52 银河星光 阅读(10 ) 评论…

    Linux 2023年6月13日
    093
  • Linux之Nginx入门

    一、Nginx介绍 Nginx是一个开源且高性能、可靠的http web服务、代理服务。 开源:直接获取源代码 高性能:支持海量并发 可靠:服务稳定 高性能,高并发 Nginx支持…

    Linux 2023年5月27日
    0102
  • 文件相关命令

    pwd指令 基本语法:pwd功能:显示当前工作的绝对目录 ls指令 基本语法:ls [选项][目录或者文件]常用选项 -a 显示所有文件及目录 (. 开头的隐藏文件也会列出) -l…

    Linux 2023年6月6日
    084
  • 每周一个linux命令(tar)

    基础环境 tar命令介绍 tar命令是linux非常使用频率非常高的一个命令,比如:离线软件包的解压缩、将一个目录打包备份、将一个压缩包解压到一个指定的目录。tar命令主要用来将一…

    Linux 2023年6月8日
    094
  • 使用 ssmtp 於 shell 透過 Gmail 寄信

    有很多程式於 bash shell 執行, 執行完要自動寄信出去, 但是最近都被 Google 退信, 最好的方法是透過 Gmail 直接寄信. 本來是要另外寫隻 script 來…

    Linux 2023年5月28日
    088
  • phpcms全文检索功能实现(集成sphinx)

    sphinx配置 sphinx是俄罗斯人开发的一个搜索引擎,基于c++编写,具有强大的检索能力,本身支持中文单个字符的检索,中文分词需要额外的插件Coreseek,但该插件已很久未…

    Linux 2023年6月13日
    0122
  • Nginx 实践案例(源码编译安装方式):利用LNMP搭建wordpress站点

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 ​LNMP是Linux + Nginx + MySQL + PHP 四个系统的首字母缩写,相对于 LAMP(Linux + Ap…

    Linux 2023年5月27日
    0116
  • Redis是如何实现高性能的?

    Redis到底有多快? redis到底有多快,可以通过 redis-benchmark 脚本进行基准测试。redis官方的性能基准测试报告 Redis为什么这么快? redis之所…

    Linux 2023年6月7日
    0102
  • 网络扫描(二)

    免责声明:本文所述工具只用于网络安全的学习与研究。严禁任何阅读本文的读者利用本文所述工具进行违法犯罪活动。如有任何法律纠纷本文作者概不负责。 上一篇博文讲到了fping工具和nma…

    Linux 2023年6月14日
    093
  • python入门基础知识五(for循环、公共操作与推导式)

    for循环 break终止循环 a = ‘abcd’ for i in a: … if i == ‘c’: … print("’c’ stands for ‘ce…

    Linux 2023年6月7日
    0124
  • SSH免密登录

    SSH免密登录实现三步: 客户端生成公钥和私钥 上传公钥到服务端 SSH免密登录 (1) 客户端生成和公钥和私钥 ssh-keygen 一路回车即可,默认会在~/.ssh/目录下创…

    Linux 2023年6月7日
    096
  • 模拟MBR Grub故障修复

    1. MBR故障修复 破坏mrb 重启后镜像界面显示找不到引导系统, 连接光驱,进入紧急救援模式到shell字符界面还原备份 挂载硬盘并备份groub.conf文件 破坏grub并…

    Linux 2023年6月8日
    097
  • MIT6.824 Lab2调试过程

    2021-12-12 21:50 测试了5次,通过了并发用例。运行并发的用例的时候,会报第6个entry没有被三个节点中的任意一个apply。 看了看日志,发现第6个entry一直…

    Linux 2023年6月7日
    0101
  • python写日志

    写日志的办法多种多样,我这个是我喜欢的办法,可以做个参考 没啥说的,直接上代码 import time def write_log(value): now_time = time….

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