Ubuntu 下 systemd 介绍
系列文章目录
Linux内核学习
Linux 知识(1)
Linux 知识(2)
WSL Ubuntu
QEMU 虚拟机
Linux 调试视频
PCIe 与 USB 的补充知识
vscode 使用说明
树莓派 4B 指南
设备驱动畅想
Linux内核子系统
Linux 文件系统挂载
QEMU 通过网络实现共享文件
OrangePi 学习摘录 —— 制作桌面版镜像
Radxa 学习摘录
Rockchip RK3399 - 引导流程和准备工作
制作Ubuntu根文件
制作RK3568 ubuntu20.04桌面版镜像
Rockchip RK3399 - 移植ubuntu 20.04.4根文件系统
文章目录
- 系列文章目录
- 1、init 启动方式
- 2、相关目录介绍
- 3、systemd 工作流程
- 1. 启动阶段
- 2. 加载配置文件
- 3. 确定运行模式
- 4. 启动基础服务
- 5. 启动目标服务
- 6. 服务管理
- 7. 日志管理
- 8. 资源控制
- 9. 故障恢复
- 总结
- 4、写一个 systemd 配置文件
- 1. 创建服务单元文件
- 2. 编写服务配置
- 3. 配置文件解析
- 4. 加载并启动服务
- 5. 注意事项
1、init 启动方式
init
进程启动后,负责初始化用户空间的系统服务和应用程序:
-
SysV init
(传统方式):
从/etc/inittab
文件读取配置,确定默认运行级别(如多用户模式或图形界面模式)。
启动基本系统服务,如网络服务、系统日志、用户登录服务(getty 等)。 -
systemd
(现代主流方式,Ubuntu 从 15.04 开始默认使用):
系统大部分组件被建模为systemd
服务。
通过目标单元(如 multi-user.target 或 graphical.target)协调服务启动顺序。
自动优化启动流程,减少依赖和启动时间。
2、相关目录介绍
以下是 systemd
功能相关的目录介绍:
/usr/lib/systemd/system
- 用途 :存放由软件包安装的
systemd
单元文件,包括各种服务(.service
)、目标(.target
)、挂载(.mount
)等单元文件。 - 特点 :该目录下的配置文件是由软件包管理器(如 apt、rpm 等)安装软件时自动放置的,通常不需要用户手动修改。它为系统提供了各种预定义的服务和功能配置。
/run/systemd/system
- 用途 :存放系统运行时动态生成的单元文件。这些文件通常是在系统运行过程中,由各种服务或进程根据需要创建的。
- 特点 :该目录下的配置文件具有中等优先级,一般很少被手动修改,除非需要调整程序运行时的一些参数,即 Session 级别的参数。
/etc/systemd/system
- 用途 :存放系统管理员自定义的
systemd
单元文件,或者通过systemctl enable
命令创建的开机启动服务的符号链接。 - 特点 :该目录下的配置文件优先级最高,如果同一选项在多个目录中都配置了,这里的配置会覆盖其他目录的配置。系统管理员可以在此目录中创建自己的单元文件,或者通过符号链接的方式启用或禁用服务。
/lib/systemd/system
- 用途 :与
/usr/lib/systemd/system
目录相同,用于存放软件包安装的 systemd 单元文件。 - 特点 :在许多 Linux 系统中,/lib 目录实际上是 /usr/lib 的符号链接,因此这两个目录在实际使用中是等价的。
3、systemd 工作流程
systemd
是现代 Linux 系统中广泛使用的初始化系统和服务管理器,负责在系统启动时管理和启动各种服务、资源和进程。以下是 systemd 的工作流程:
1. 启动阶段
- 内核启动
systemd
:- 内核加载完成后,会启动第一个用户空间进程
systemd
(PID=1)。systemd 是现代 Linux 系统的初始化进程,取代了传统的 init 进程。 systemd
会读取配置文件(如/etc/systemd/system/default.target
),确定系统的默认运行模式(如多用户模式或多用户图形界面模式)。
- 内核加载完成后,会启动第一个用户空间进程
2. 加载配置文件
- 系统初始化配置
systemd
从/etc/systemd/system.conf
文件中加载系统初始化配置,包括系统的运行模式、默认的依赖关系模式等。
- 单元文件查找
- 系统启动时,
systemd
首先会读取/etc/systemd/system
、/usr/lib/systemd/system
和/run/systemd/system
目录中的单元文件(例如.service
、.target
、.socket
等)。其中:/etc/systemd/system
:优先级最高,存放系统管理员自定义或使用 systemctl enable 启用的单元文件。/usr/lib/systemd/system
:存放软件包安装的默认单元文件。/run/systemd/system
:存放系统运行时生成的临时单元文件。
- 系统启动时,
3. 确定运行模式
- 运行模式(Target):
systemd
使用target
来定义系统的运行模式。常见的target
包括:multi-user.target
:多用户命令行模式。graphical.target
:图形化多用户模式。
- 默认运行模式由
/etc/systemd/system/default.target
文件指定。
4. 启动基础服务
- 基础服务启动:
- systemd 会启动一些基础服务,如:
- udev:管理设备节点。
- systemd-logind:管理用户会话。
- systemd-journald:管理日志系统。
- 这些服务是系统运行的基础设施,必须优先启动。
- systemd 会启动一些基础服务,如:
5. 启动目标服务
- 根据 target 启动服务:
- systemd 会根据目标 target 文件(如 multi-user.target 或 graphical.target)启动相关服务。
- 服务的配置文件通常位于
/etc/systemd/system/<target>.wants/
目录下。 - 服务启动时,systemd 会自动解析服务之间的依赖关系,并按需并行启动服务。
6. 服务管理
-
服务生命周期管理:
- systemd 提供了 systemctl 命令来管理服务,例如:
systemctl start <service>
:启动服务。systemctl stop <service>
:停止服务。systemctl restart <service>
:重启服务。systemctl status <service>
:查看服务状态。
- systemd 提供了 systemctl 命令来管理服务,例如:
-
开机自启管理:
通过systemctl enable <service>
和systemctl disable <service>
命令,可以启用或禁用服务的开机自启动。
7. 日志管理
- 日志记录:
systemd-journald
负责记录系统日志,日志存储在内存和磁盘中,便于快速查询。
- 日志查询:
- 使用
journalctl
命令可以查看日志,例如:journalctl -u <service>
:查看指定服务的日志。journalctl -b
:查看本次启动的日志。journalctl -f
:实时查看最新日志。
- 使用
8. 资源控制
- 资源隔离:
- systemd 使用控制组(cgroups)来隔离和限制服务的资源使用,例如内存、CPU 等。
- 沙盒运行:
- 可以通过配置文件中的选项(如 ProtectSystem=strict 和 PrivateTmp=true)增强服务的安全性。
9. 故障恢复
- 自动重启服务:
- 在服务配置文件中设置 Restart=on-failure,当服务崩溃时,systemd 会自动重启服务。
总结
systemd 的工作流程包括从系统启动到服务管理的全过程,其核心特点是:
- 并行启动:通过并行启动服务,显著缩短系统启动时间。
- 依赖管理:自动解析服务之间的依赖关系,确保服务按正确顺序启动。
- 统一管理:通过 systemctl 和 journalctl 命令,提供了一致的服务和日志管理接口。
4、写一个 systemd 配置文件
systemd
使用单元文件(unit files)来管理各种系统资源。以下是一个简单的自定义服务配置示例,我们将创建一个名为 my-custom-service.service
的服务。
1. 创建服务单元文件
在 /etc/systemd/system/
目录下创建一个新的单元文件,例如:/etc/systemd/system/my-custom-service.service
。
2. 编写服务配置
打开文件并添加以下内容:
[Unit]
Description=My Custom Service
After=network.target[Service]
Type=simple
User=myuser
ExecStart=/path/to/my/script.sh
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill $MAINPID
Restart=on-failure
RestartSec=5s[Install]
WantedBy=multi-user.target
3. 配置文件解析
-
[Unit]
节Description
:服务的简短描述。After
:指定该服务在 network.target 后启动,表示该服务依赖于网络服务。
-
[Service]
节Type
:定义服务类型,simple 表示服务启动后立即进入主进程。User
:指定服务运行的用户。ExecStart
:启动服务时执行的命令。ExecReload
:重新加载服务时执行的命令(此处示例为发送 HUP 信号)。ExecStop
:停止服务时执行的命令。Restart
:指定服务在失败时的重启策略,on-failure 表示服务失败时自动重启。RestartSec
:设置重启服务前的等待时间。
-
[Install]
节WantedBy
:指定该服务对应的目标(target),multi-user.target 表示在多用户模式下启动。
4. 加载并启动服务
- 重新加载 systemd 配置:
sudo systemctl daemon-reload
- 启动服务:
sudo systemctl start my-custom-service
- 设置开机自启:
sudo systemctl enable my-custom-service
- 检查服务状态:
sudo systemctl status my-custom-service
5. 注意事项
- 路径和权限:确保 ExecStart 指定的脚本路径正确,并且脚本具有可执行权限。
- 日志查看:使用 journalctl -u my-custom-service 查看服务日志,便于排查问题。
- 调试:如果服务启动失败,可以查看 /var/log/journal 中的系统日志。
通过以上步骤,你可以创建并配置一个自定义的 systemd 服务。
相关文章:
Ubuntu 下 systemd 介绍
系列文章目录 Linux内核学习 Linux 知识(1) Linux 知识(2) WSL Ubuntu QEMU 虚拟机 Linux 调试视频 PCIe 与 USB 的补充知识 vscode 使用说明 树莓派 4B 指南 设备驱动畅想 Linux内核子系统 Linux 文件系统挂载 QEMU 通过网络实现…...
两个实用且热门的 Python 爬虫案例,结合动态/静态网页抓取和反爬策略,附带详细代码和实现说明
在这个瞬息万变的世界里,保持一颗探索的心,永远怀揣梦想前行。即使有时会迷失方向,也不要忘记内心深处那盏指引你前进的明灯。它代表着你的希望、你的信念以及对未来的无限憧憬。每一个不曾起舞的日子,都是对生命的辜负࿱…...
Softing线上研讨会 | 自研还是购买——用于自动化产品的工业以太网
| 线上研讨会时间:2025年1月27日 16:00~16:30 / 23:00~23:30 基于以太网的通信在工业自动化网络中的重要性日益增加。设备制造商正面临着一大挑战——如何快速、有效且经济地将工业以太网协议集成到其产品中。其中的关键问题包括:是否只需集成单一的工…...
Jetson Agx Orin平台preferred_stride调试记录--1924x720图像异常
1.问题描述 硬件: AGX Orin 在Jetpack 5.0.1和Jetpack 5.0.2上测试验证 图像分辨率在1920x720和1024x1920下图像采集正常 但是当采集图像分辨率为1924x720视频时,图像输出异常 像素格式:yuv_uyvy16 gstreamer命令如下 gst-launch-1.0 v4l2src device=/dev/video0 ! …...
从2025年起:数字化建站PHP 8.1应成为建站开发的基准线
在数字化浪潮席卷全球的今天,PHP语言仍然保持着Web开发领域的核心地位。根据W3Techs最新统计,PHP驱动着全球78.9%的已知服务端网站。当时间指向2025年,这个拥有28年历史的编程语言将迎来新的发展里程碑——PHP 8.1版本应成为网站开发的最低基准要求,这不仅是技术迭代的必然…...
电动汽车电池监测平台系统设计(论文+源码+图纸)
1总体设计 本次基于单片机的电池监测平台系统设计,其整个系统架构如图2.1所示,其采用STC89C52单片机作为控制器,结合ACS712电流传感器、TLC1543模数转换器、LCD液晶、DS18B20温度传感器构成整个系统,在功能上可以实现电压、电流、…...
20240914 天翼物联 笔试
文章目录 1、行测知识1.11.21.31.41.51.61.71.81.91.101.111.121.131.141.152、专业知识2.12.22.32.42.52.62.72.82.92.102.112.122.132.142.153、编程题3.13.2岗位:嵌入式开发工程师(上海) 题型:15 道行测知识,15 道专业知识,2 道编程题 注意:本文章暂无解析,谨慎分…...
前端高级面试题
以下是一些前端高级面试可能涉及到的内容: 一、前端工程化 如何构建一个适合大型团队的前端代码规范和构建流程? 答案: 代码规范方面: 使用ESLint结合Prettier来统一JavaScript和CSS(包括预处理器如Sass或Less)的语法风格。例如,规定变量命名采用驼峰命名法,函数名要有…...
【nvidia】NCCL禁用P2P后果权衡
通信bound还是计算bound? 计算bound场景: 模型参数量较小(如参数量未超出单卡显存容量,使用纯数据并行)或计算密度极高(如大batch size下的矩阵运算)时,A100的计算能力(…...
哈希表(C语言版)
文章目录 哈希表原理实现(无自动扩容功能)代码运行结果 分析应用 哈希表 如何统计一段文本中,小写字母出现的次数? 显然,我们可以用数组 int table[26] 来存储每个小写字母出现的次数,而且这样处理,效率奇高。假如我们想知道字…...
unity学习46:反向动力学IK
目录 1 正向动力学和反向动力学 1.1 正向动力学 1.2 反向动力学 1.3 实现目标 2 实现反向动力 2.1 先定义一个目标 2.2 动画层layer,需要加 IK pass 2.3 增加头部朝向代码 2.3.1 专门的IK方法 OnAnimatorIK(int layerIndex){} 2.3.2 增加朝向代码 2.4 …...
夜莺监控发布 v8.beta5 版本,优化 UI,新增接口认证方式便于鉴权
以防读者不了解夜莺,开头先做个介绍: 夜莺监控,英文名字 Nightingale,是一款侧重告警的监控类开源项目。类似 Grafana 的数据源集成方式,夜莺也是对接多种既有的数据源,不过 Grafana 侧重在可视化ÿ…...
asio的使用
1、下载 性能测试:https://github.com/huyuguang/asio_benchmark 2、基本使用 2.1 TCP 1、客户端: 2、服务端: 2.2 UDP单揪 boost的asio接收单路大数据量udp包的方法 1、发送: 2、接收: #include "Circled…...
PHP语法完全入门指南:从零开始掌握动态网页
本文专为零基础新手设计,通过5000字详细讲解带你系统学习PHP语法。包含环境搭建、基础语法、实战案例,并附20+代码示例。阅读后你将能独立开发简单动态网页! 一、PHP开发环境搭建(新手必看) 1.1 为什么需要搭建环境? PHP是服务器端脚本语言,需要运行在服务器环境中。推…...
WPF快速创建DeepSeek本地自己的客户端-基础思路版本
开发工具:VS 2015 开发环境:.Net 4.0 使用技术:WPF 本篇文章内容: 本地部署DeepSeek以后一般使用网页工具(如Chatbox)或者DOS窗口与其对话。本篇文章使用WPF创建一个基础版的对话工具。 一、搭建本地DeepS…...
Win7本地化部署deepseek-r1等大模型详解
参考链接 在Windows 7操作系统,基于llama.cpp本地化部署 deepseek-r1模型的方法 2025-02-08 2G内存Windows7运行deepseek-r1:1.5b 这两个链接写的可能不够详细,有同学私信问实现过程,这里进一步解释一下。 一、准备 需要准备的大模型、工具…...
分享一个解梦 Chrome 扩展 —— 周公 AI 解梦
一、插件简介 周公 AI 解梦是一款基于 Chrome 扩展的智能解梦工具,由灵机 AI 提供技术支持。它能运用先进的 AI 技术解析梦境含义,为用户提供便捷、智能的解梦服务。无论你是对梦境充满好奇,还是想从梦境中获取一些启示,这款插件都…...
国产Linux OS:网络性能调优关键内核参数
国产Linux OS:网络性能调优关键内核参数 参数列表 这些参数是Linux系统中用于网络性能调优的关键内核参数,它们控制了网络接口和TCP协议栈的行为。合理调整这些参数可以根据具体的应用场景和网络条件优化系统的网络性能。 sysctl net.core.rmem_max sy…...
DeepSeek接口联调(postman版)
第一步:获取API key 获取APIkeys链接https://platform.deepseek.com/api_keys 点击创建 API key 即可免费生成一个key值,别忘记保存。 第二步:找到deepseek官方接口文档 文档地址:https://api-docs.deepseek.com/zh-cn/ 第三步…...
算法19(力扣244)反转字符串
1、问题 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 2、示例 (1) 示例 1&a…...
Svelte 最新中文文档翻译(10)—— use: 与 Actions
前言 Svelte,一个非常“有趣”、用起来“很爽”的前端框架。从 Svelte 诞生之初,就备受开发者的喜爱,根据统计,从 2019 年到 2024 年,连续 6 年一直是开发者最感兴趣的前端框架 No.1: Svelte 以其独特的编…...
iptables网络安全服务详细使用
iptables防火墙概念说明 开源的基于数据包过滤的网络安全策略控制工具。 centos6.9 --- 默认防火墙工具软件iptables centos7 --- 默认防火墙工具软件firewalld(zone) iptables主要工作在OSI七层的二、三、四层,如果重新编译内核&…...
node.js + html调用ChatGPTApi实现Ai网站demo(带源码)
文章目录 前言一、demo演示二、node.js 使用步骤1.引入库2.引入包 前端HTML调用接口和UI所有文件总结 前言 关注博主,学习每天一个小demo 今天是Ai对话网站 又到了每天一个小demo的时候咯,前面我写了多人实时对话demo、和视频转换demo,今天…...
Vue 3最新组件解析与实践指南:提升开发效率的利器
目录 引言 一、Vue 3核心组件特性解析 1. Composition API与组件逻辑复用 2. 内置组件与生命周期优化 3. 新一代UI组件库推荐 二、高级组件开发技巧 1. 插件化架构设计 2. 跨层级组件通信 三、性能优化实战 1. 惰性计算与缓存策略 2. 虚拟滚动与列表优化 3. Tree S…...
DeepSeek 助力 Vue 开发:打造丝滑的日期选择器(Date Picker),未使用第三方插件
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...
kubernetes源码分析 kubelet
简介 从官方的架构图中很容易就能找到 kubelet 执行 kubelet -h 看到 kubelet 的功能介绍: kubelet 是每个 Node 节点上都运行的主要“节点代理”。使用如下的一个向 apiserver 注册 Node 节点:主机的 hostname;覆盖 host 的参数࿱…...
PostgreSQL的学习心得和知识总结(一百六十八)|深入理解PostgreSQL数据库之PostgreSQL 规划器开发与调试(翻译)
目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《PostgreSQL数据库内核分析》 2、参考书籍:《数据库事务处理的艺术:事务管理与并发控制》 3、PostgreSQL数据库仓库…...
React创建项目实用教程
✍请将整篇文章阅读完再开始使用create-react-app react-project创建项目 检查node版本 node -v // node版本:v22.10.0使用nvm降版本修改到了node V20.11.1之后再进行一系列操作的 react脚手架安装: npm install -g create-react-app// node版本&…...
STM32 外部中断和NVIC嵌套中断向量控制器
目录 背景 外部中断/事件控制器(EXTI) 主要特性 功能说明 外部中断线 嵌套向量中断控制器 特性 中断线(Interrupt Line) 中断线的定义和作用 STM32中断线的分类和数量 优先级分组 抢占优先级(Preemption Priority) …...
讯飞唤醒+VOSK语音识别+DEEPSEEK大模型+讯飞离线合成实现纯离线大模型智能语音问答。
在信息爆炸的时代,智能语音问答系统正以前所未有的速度融入我们的日常生活。然而,随着数据泄露事件的频发,用户对于隐私保护的需求日益增强。想象一下,一个无需联网、即可响应你所有问题的智能助手——这就是纯离线大模型智能语音…...
【MediaTek】 T750 openwrt-23.05编 cannot find dependency libexpat for libmesode
MediaTek T750 T750 采用先进的 7nm 制程,高度集成 5G 调制解调器和四核 Arm CPU,提供较强的功能和配置,设备制造商得以打造精巧的高性能 CPE 产品,如固定无线接入(FWA)路由器和移动热点。 MediaTek T750 平台是一款综合的芯片组,集成了 5G SoC MT6890、12nm 制程…...
如何通过 prometheus-operator 实现服务发现
在之前的章节中,我们讲解了如何编写一个自定义的 Exporter,以便将指标暴露给 Prometheus 进行抓取。现在,我们将进一步扩展这个内容,介绍如何使用 prometheus-operator 在 Kubernetes 集群中自动发现并监控这些暴露的指标。 部署应用 在 Kubernetes 集群中部署我们的自定…...
VBA学习:将文本中的\n替换为换行符
目录 一、问题描述 二、解决方法 三、代码 四、注意事项 五、总结 一、问题描述 一个字符串,包含多个\n,现在利用VBA写一段程序,把\n替换为换行符。 二、解决方法 1、Replace函数:直接替换换行符 在Word 中 使用vbCrLf或者…...
(8/100)每日小游戏平台系列
项目地址位于:小游戏导航 新增一个打地鼠游戏! 打地鼠(Whack-a-Mole)是一款经典的休闲游戏,玩家需要点击随机出现的地鼠,以获取分数。游戏时间有限,玩家需要在规定时间内尽可能多地击中地鼠&am…...
【设计模式】 建造者模式和原型模式
建造者模式(Builder Pattern) 概述 建造者模式是一种创建型设计模式,它允许逐步构建复杂对象。通过将构造过程与表示分离,使得同样的构建过程可以创建不同的表示。这种模式非常适合用于创建那些具有很多属性的对象,尤…...
【Python 学习 / 4】基本数据结构之 字符串 与 集合
文章目录 1. 字符串概念1.1 字符串的创建1.2 字符串的访问和操作1.2.1 下标访问1.2.2 切片操作1.2.3 字符串的拼接和重复1.2.4 字符串的长度 1.3 字符串的方法1.4 字符串的查找和替换1.5 字符串格式化1.5.1 使用 % 运算符1.5.2 使用 str.format()1.5.3 使用 f-string࿰…...
Spring框架中都用到了哪些设计模式?
大家好,我是锋哥。今天分享关于【Spring框架中都用到了哪些设计模式?】面试题。希望对大家有帮助; Spring框架中都用到了哪些设计模式? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Spring框架中使用了大量的设计模…...
HBuilderX中uni-app打开页面时,如何用URL传递参数,Query参数传递
HBuilderX中uni-app打开页面时,如何用URL传递参数,Query参数传递? URL是一种描述文件在计算机网络中位置的方式。在web开发中,可以通过query string来传递参数。使用uniapp进行开发,打开不同的页面时,本文介绍给所要打…...
【开源向量数据库】Milvus简介
Milvus 是一个开源、高性能、可扩展的向量数据库,专门用于存储和检索高维向量数据。它支持近似最近邻搜索(ANN),适用于图像检索、自然语言处理(NLP)、推荐系统、异常检测等 AI 应用场景。 官网:…...
c/c++蓝桥杯经典编程题100道(19)汉诺塔问题
汉诺塔问题 ->返回c/c蓝桥杯经典编程题100道-目录 目录 汉诺塔问题 一、题型解释 二、例题问题描述 三、C语言实现 解法1:递归法(难度★) 解法2:迭代法(难度★★★) 四、C实现 解法1࿱…...
CSS盒模
CSS盒模型就像一个快递包裹,网页上的每个元素都可以看成是这样一个包裹,它主要由以下几个部分组成: 内容(content):就像包裹里真正装的东西,比如文字、图片等。在CSS里,可用width&a…...
【go语言规范】关于接口设计
抽象应该被发现,而不是被创造。为了避免不必要的复杂性,需要时才创建接口,而不是预见到需要它,或者至少可以证明这种抽象是有价值的。 “The bigger the interface, the weaker the abstraction. 不要用接口进行设计,要…...
计算机视觉+Numpy和OpenCV入门
Day 1:Python基础Numpy和OpenCV入门 Python基础 变量与数据类型、函数与类的定义、列表与字典操作文件读写操作(读写图像和数据文件) 练习任务:写一个Python脚本,读取一个图像并保存灰度图像。 import cv2 img cv2.im…...
计算机网络之网络层(网络层的功能,异构网络互联,路由与转发,SDN基本概念,拥塞控制)
计算机网络之网络层 网络层(Network Layer)是计算机网络体系结构中至关重要的一层,它位于数据链路层(Data Link Layer)和传输层(Transport Layer)之间,主要负责数据包从源主机到目的…...
利用雪花算法+Redis 自增 ID,生成订单号
在我们的项目中,我们需要定义一些全局唯一的 ID,比如订单号,支付单号等等。 这些ID有以下几个基本要求: 1、不能重复 2、不可被预测 3、能适应分库分表 为了生成一个这样一个全局的订单号,自定义了一个分布式 ID …...
第35次CCF计算机软件能力认证 python 参考代码
题目列表1. 密码2. 字符串变换3. 补丁应用4. 通讯延迟5. 木板切割题目列表 第35次CCF计算机软件能力认证 1. 密码 n = int(input()) for _ in range(n):s =...
【探商宝】:大数据与AI赋能,助力中小企业精准拓客引
引言:在数据洪流中,如何精准锁定商机? 在竞争激烈的商业环境中,中小企业如何从海量信息中快速筛选出高价值客户?如何避免无效沟通,精准触达目标企业? 探商宝——一款基于大数据与AI技术的企业信…...
npm 私服使用介绍
一、导读 本文主要介绍 npm 私服的使用,至于 npm 私服搭建的过程,可以看本人之前的文章《Docker 部署 verdaccio 搭建 npm 私服》 二、前置条件 npm私服地址:http://xxx.xxx.xxx.xxx:port/ 三、本地 npm 源切换 使用nrm,可以方…...
【Python 打造高效文件分类工具】
【Python】 打造高效文件分类工具 一、代码整体结构二、关键代码解析(一)初始化部分(二)界面创建部分(三)核心功能部分(四)其他辅助功能部分 三、运行与使用四、示图五、作者有话说 …...
水务+AI应用探索(一)| FastGPT+DeepSeek 本地部署
在当下的科技浪潮中,AI 无疑是最炙手可热的焦点之一,其强大的能力催生出了丰富多样的应用场景,广泛渗透到各个行业领域。对于水务行业而言,AI 的潜力同样不可估量。为了深入探究 AI 在水务领域的实际应用成效,切实掌握…...