引导和服务(2)

服务

1.systemd服务的简要介绍

(1)对比5 6 可以解决依赖关系并行启动

(2)按需启动

(3)自动解决依赖关系

负责在系统启动或运行时,激活系统资源,服务器进程和其它进程

2.Systemd新特性

1.系统引导时实现服务并行启动,2.按需启动守护进程,3.自动化的服务依赖关系管理,4.同时采用socket式与D-Bus总线式激活服务,5.socket与服务程序分离,6.向后兼容sysv init脚本,7.使用systemctl 命令管理,systemctl命令固定不变,不可扩展,非由systemd启动的服务,8.systemctl无法与之通信和控制,9.系统状态快照

systemd 核心概念:unit

unit表示不同类型的systemd对象,通过配置文件进行标识和配置;文件中主要包含了系统服务、监听

socket、保存的系统快照以及其它与init相关的信息

3.systemd管理的程序

(1)系统必要的程序

(2)yum  rpm  安装的程序

(3)编译安装的程序,需要手写配置文件后才可以

4.Systemd单元类型

单元类型护展名说明
Service.service描述一个系统服务软件
Socket.socket描述一个进程间通信的套接字
Device.device描述一个内核识别的设备文件
Mount.mount描述一个文件系统的挂载点
Automoun.automount描述一个文件系统的自动挂载点
Swap.swap描述一个内存交换设备或目录
Timer.timer描述一个定时器(用于实现类似cron的调度任务)
Path.path描述一个文件系统中文件或目录(path 路径)
Snapshot.snapshot用于保存一个systemd的状态(snapshot 快照)
Scope.scope使用systemd的总线接口以编程的方式创建外部进程
Slice.slice描述居于Cgroup的一组通过层次组织的管理系统进程
Target.target描述一组systemd的单元(target 目标)

5.systemctl 常用命令

命令说明

systemctl   start   服务名

开启服务

systemctl   stop    服务名

  关闭服务

systemctl   status 服务名

查看服务状态

systemctl  restart   服务

 重启服务

systemctl  reload     服务

 重启加载服务,不影响客户使用

systemctl  enable   服务

 开机自启

systemctl  disable   服务

关闭开机自启

systemctl  enable  --now  服务

开机自启,并立即启动

systemctl  disable  --now  服务

关闭开机自启,并立即关闭

systemctl  damon - reload  加载新服务让系统识别

 6.运行级别

运行级别所对应的Systemd目标

运行级别Systemd的target说明
0target关机状态,使用该级别时会关闭主机
1rescue.target单用户模式,不需要密码验证即可登录系统,多用于系统维护
2multi-user.target用户定义/域特定运行级别。默认等同于3
3multi-user.target字符界面的完整多用户模式,大多数服务器主机运行在此级别
4multi-user.target用户定义/域特定运行级别。默认等同于3
5garphical.target图形界面的多用户模式,提供了图形桌面操作环境
6reboot.target重新启动,使用该级别时将会重启主机

runlevel 查看目前的运行级别

[root@localhost ~]# runlevel
N 5

N:代表没有切换过级别

5:图形界面,当前级别

输入init  3

7.service  unit  文件格式

unit 格式说明:

(1)以 “#” 开头的行后面的内容会被认为是注释

(2)相关布尔值,1、yes、on、true 都是开启,0、no、off、false 都是关闭

(3)时间单位默认是秒,所以要用毫秒(ms)分钟(m)等须显式说明

service unit file文件通常由三部分组成:

(1)[Unit]:定义与Unit类型无关的通用选项;用于提供unit的描述信息、unit行为及依赖关系等

(2)[Service]:与特定类型相关的专用选项;此处为Service类型

(3)[Install]:定义由“systemctl enable”以及"systemctl disable“命令在实现服务启用或禁用时用到的一些选项

Unit段的常用选项:

(1)Description:描述信息

(2)After:定义unit的启动次序,表示当前unit应该晚于哪些unit启动,其功能与Before相反

(3)Requires:依赖到的其它units,强依赖,被依赖的units无法激活时,当前unit也无法激活

(4)Wants:依赖到的其它units,弱依赖

(5)Conflicts:定义units间的冲突关系

Service段的常用选项:

Type:定义影响ExecStart及相关参数的功能的unit进程启动类型

      *  simple:默认值,这个daemon主要由ExecStart接的指令串来启动,启动后常驻于内存中

      *forking:由ExecStart启动的程序透过spawns延伸出其他子程序来作为此daemon的主要服务。原生父程序在启动结束后就会终止

      *oneshot:与simple类似,不过这个程序在工作完毕后就结束了,不会常驻在内存中

      *dbus:与simple类似,但这个daemon必须要在取得一个D-Bus的名称后,才会继续运作.因此通常也要同时设定BusNname= 才行

       *notify:在启动完成后会发送一个通知消息。还需要配合 NotifyAccess 来让 Systemd 接收消息

       *idle:与simple类似,要执行这个daemon必须要所有的工作都顺利执行完毕后才会执行。这类的daemon通常是开机到最后才执行即可的服务

EnvironmentFile:环境配置文件

ExecStart:指明启动unit要运行命令或脚本的绝对路径

ExecStartPre: ExecStart前运行

ExecStartPost: ExecStart后运行

ExecStop:指明停止unit要运行的命令或脚本

Restart:当设定Restart=1 时,则当次daemon服务意外终止后,会再次自动启动此服务

RestartSec: 设置在重启服务( Restart= )前暂停多长时间。 默认值是100毫秒(100ms)。 如果未指

定时间单位,那么将视为以秒为单位。 例如设为"20"等价于设为"20s"。

PrivateTmp:设定为yes时,会在生成/tmp/systemd-private-UUID-NAME.service-XXXXX/tmp/目录

Install段的常用选项:

Alias:别名,可使用systemctl command Alias.service

RequiredBy:被哪些units所依赖,强依赖

WantedBy:被哪些units所依赖,弱依赖

Also:安装本服务的时候还要安装别的相关服务

8.实验

使得nginx能够被systemd管理

8.1 centos6,使用chkconfig

(1)编译安装

(2)建立软连接

(3)编辑脚本,添加权限,将nginx服务加入

脚本:

#!/bin/bash 
#chkconfig: - 99 20 
#description:Nginx Service Control Script 
PROG="/usr/local/nginx/sbin/nginx" 
PIDF="/usr/local/nginx/logs/nginx.pid" case "$1" in
start) $PROG 
;; 
stop) 
kill -s QUIT $(cat $PIDF) 
;; 
restart) 
$0 stop $0 start
;; 
reload) 
kill -s HUP $(cat $PIDF) 
;;
*) echo "Usage: $0 {start|stop|restart|reload}" 
exit 1 
esac 
exit 0

8.2centos7 使用systemctl 

 (1)编译安装

(2)建立软链接

(3)编写配置文件

vim  /lib/systemd/system/nginx.service 

(4)加载新服务让系统识别,并开关服务查看服务状态

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/820333.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

excel多sheet导出工具类——java

excel多sheet导出工具类 1、多个sheet导出工具类: import org.apache.commons.lang3.StringUtils; import org.apache.poi.hssf.usermodel.*; import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.user…

操作系统(第五周 第一二堂总结)

目录 回顾 前景知识 概述 定义 进程和线程的关系 进程和线程的区别 线程优缺点 优点: 缺点: 易混概念 线程实现方式 线程的类型: ​编辑 多线程模型: 线程函数 头文件: 线程创建函数: 线…

【团体程序设计天梯赛 往年关键真题 详细分析完整AC代码】L2-003 月饼(贪心) L2-004 这是二叉搜索树吗? (数据结构)

L2-003 月饼 贪心 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。 注意:销售时允许取出一部分库存。样例给出的…

vscode i18n Ally插件配置项

.vscode文件: {"i18n-ally.localesPaths": ["src/lang"], //显示语言, 这里也可以设置显示英文为en,// 如下须要手动配置"i18n-ally.keystyle": "nested", // 翻译路径格式 (翻译后变量格式 nested&#xff1a…

氟化钡与盐酸反应不

结论:反应 氟化钡 名称   中文名称:氟化钡   英文别名:Bariumfluoride 化学式   BaF2 相对分子质量   175.32 性状   无色透明立方结晶或白色粉末。溶于盐酸、硝酸、氢氟酸和氯化铵溶液,微溶于水。 相对密度4.83。 熔…

MongoDB 使用

1 引用依赖包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency>2 配置文件配置mongodb资料 # MongoDB连接信息 spring.data.mongodb.host 192.168.23.…

C#中的this关键字:详解与使用

在C#编程中&#xff0c;类和对象是构建应用程序的基础。面向对象编程的核心是封装、继承和多态。在类的内部&#xff0c;我们定义了成员变量和成员方法&#xff0c;这些成员变量和方法构成了对象的状态和行为。然而&#xff0c;在类的成员方法中&#xff0c;我们经常需要访问对…

(二)使用VS2022克隆下载C++自制植物大战僵尸游戏教程

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/uzrnw 本文将介绍如何使用VS2022克隆下载《植物大战僵尸C自制版本》。 Gitee项目地址&#xff1a; Gitee仓库地址https://gitee.com/GITLZ/PlantsVsZombies Github项目地址&#xff1a; Github仓库地址https://github…

linux运行node项目

文章目录 1、安装node2、安装forever node的守护进程3、forever操作3.1 启动相关3.2 停止操纵3.3 重启操作 1、安装node 下载node包&#xff0c;wget node链接进行解压增加配置文件 export PATH$PATH:node解压路径刷新配置文件node -v 查看node版本 2、安装forever node的守护…

我这10年的“搞站”路

我叫老牛&#xff0c;是高中室友给起的&#xff0c;原因很简单&#xff0c;我在8人寝室年龄排第六&#xff0c;四川话“老6”和“老牛”读音相仿。 后来我就把我的qq昵称改成了“L.N.”&#xff0c;我接受了这个称呼&#xff0c;因为自我审视&#xff0c;性格的确有执拗的一面&…

【JS】querySelectorAll和getElementsByClassName

现有一段代码&#xff0c;li的类名均为item&#xff0c;有一按钮可动态添加类名为item的li。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge…

【C++从练气到飞升】07---内存管理

&#x1f388;个人主页&#xff1a;库库的里昂 ✨收录专栏&#xff1a;C从练气到飞升 &#x1f389;鸟欲高飞先振翅&#xff0c;人求上进先读书。 目录 一、 C/C内存分布 二、 C语言中动态内存管理方式 三、 C中动态内存管理 1. new/delete操作内置类型 2. new和delete操作…

Mongodb入门--头歌实验MongoDB 实验——数据备份和恢复

在实际的应用场景中&#xff0c;经常需要对业务数据进行备份以做容灾准备&#xff0c; MongoDB 提供了备份和恢复的功能&#xff0c;分别是 MongoDB 下的 一、数据备份 任务描述 本关任务&#xff1a;按照编程要求备份数据库。 相关知识 为了完成本关任务&#xff0c;你需要掌…

前端二维码工具小程序:营销裂变的好助手

一、摘要 在数字化营销日益盛行的今天&#xff0c;如何以新颖、高效的方式吸引用户&#xff0c;成为了每一个营销者所追求的目标。前端二维码工具小程序&#xff0c;作为一款集二维码生成、AI助手与绘图画画功能于一体的综合性工具&#xff0c;不仅为营销人员提供了全新的思路…

微服务架构核心组件介绍

微服务架构是一种设计方法&#xff0c;它将应用程序分解为一组小型、松散耦合的服务。每个服务运行在自己的进程中&#xff0c;并通常围绕业务能力组织。这种架构风格使得服务可以独立地部署、扩展和维护。在微服务架构中&#xff0c;有几个核心组件是至关重要的&#xff0c;它…

android 修改kernel编译版本信息

1&#xff0c;android版本&#xff1a; 在android/build/core/version_defaults.mk中红色部分 ifeq "" "$(BUILD_NUMBER)" # BUILD_NUMBER should be set to the source control value that # represents the current state of the source code. E.g…

0101tomcat部署war访问mysql失败-容器间通信-docker项目部署

文章目录 一、简介二、部署1、mysql数据迁移2、docker部署redis3、docker部署tomcat并运行war包 三、报错四、解决1 分析2 解决 结语 一、简介 最近参与开发一个项目&#xff0c;其中一部分系统需要迁移。从阿里云迁移到实体服务器&#xff0c;使用docker部署。系统使用Java语…

openssl密钥证书管理(Key and Certificate Management)

前言 前两日应别人要求提供一份CSR文件过去&#xff0c;方便他们生成相关证书&#xff0c;对于这一块本来也不熟&#xff0c;于是找到openssl官网&#xff0c;想找找相关的教程看看&#xff0c;一番小找&#xff0c;果有收获&#xff0c;是个宝藏&#xff0c;源文档在这…

项目管理-Jiar Software

Jira Software是澳大利亚公司Atlassian出品的一款项目与事务跟踪工具&#xff0c;被广泛应用于需求管理、项目追踪、任务追踪、缺陷追踪、流程审批、敏捷项目管理等软件研发领域。它不仅是一个强大的项目管理工具&#xff0c;还是一个适用于各种类型用例的工作管理工具。 在项…

Mysql-模糊匹配度排序分页

Mysql-模糊匹配度排序分页 抛出问题 在使用模糊匹配分页的时候想根据匹配度高进行排序应该如何实现呢&#xff1f; 上面是添加的模拟数据&#xff0c;根据匹配度高的情况下张三的优先级肯定是最高的&#xff0c;首先直接使用模糊搜索分页看看效果吧。 很明显的可以看到&#…