服务管理简介
服务器的作用主要是什么?主要是通过网络来提供服务,比如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目录里面的修改可以覆盖原始设置。

posted on 2022-07-06 13:26  Lyon-w  阅读(340)  评论(0编辑  收藏  举报