- supervisor环境变量
蕴重Liu
场景:supervisor启动flask失败,手动python启动成功,报错信息是缺少ModuleNotFoundError配置文件:[program:aib-humanpose]environment=PYTHONPATH=/root/anaconda3/lib/python3.6/site-packagescommand=/root/anaconda3/bin/pythongateway_b_
- risc-v特权模式
狮子座硅农(Leo ICer)
risc-v
risc-v架构定义了3种工作模式,又称为特权模式(privilegedmode)。机器模式(machinemode),简称M模式;监督模式(supervisormode),简称S模式;用户模式(usermode),简称U模式。risc-v架构定义机器模式为必选模式,另外两种模式为可选模式,通过不同的模式组合可以实现不同的系统。risc-v架构支持几种不同的存储器地址管理机制,包括对物理地址和虚拟
- 组态软件
ytffhew
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!组态软件组态软件,又称组态监控软件系统软件。译自英文SCADA,即SupervisoryControlandDataAcquisition(数据采集与监视控制)。它是指一些数据采集与过程控制的专用软件。它们处在自
- Linux 非root用户部署elasticsearch 7.17.23和ik分词器
XMYX-0
linuxelasticsearchik分词器
文章目录下载安装包环境安装JDK(三台)注解安装supervisor(三台)注解环境初始化(三台)注解部署Elasticsearch(三台)解压配置elasticsearch.yml192.168.0.1192.168.10.2192.168.10.3注解配置Supervisor管理Elasticsearch注解部署IK分词器(三台)测试IK分词器注解下载安装包首先,我们将Elasticsearc
- 标题OnlyOffice 7.4 版本打开文件时提示:文档安全令牌未正确形成。
Gemini1995
经验分享
环境ubuntu20.04onlyOffice7.4(docker版本)解决方案cd/etc/onlyoffice/documentserversed-i's/true/false/g'local.jsonsupervisorctlrestartall
- JStorm源码分析-5.Supervisor
史圣杰
Supervisor用于执行拓扑中指定的组件任务,是实际响应nimubus分配,控制worker运行的程序。1.启动Supervisor启动Supervisor时,只需要输入jstormsupervisorjstorm.py脚本会将supervisor子命令解析为如下命令:java-server-Djstorm.home=/Users/shishengjie/software/jstorm-0.9
- 使用 C++23 从零实现 RISC-V 模拟器(6):权限支持
everystep_
c++23risc-v
本节内容增加了权限表示,设置了三种权限。当cpu初始化时默认的权限为Machine模式。接下来实现这三种特权模式,随后实现sret和mret指令。RISC-V定义了三种特权等级,分别是用户态(UserMode)、监管态(SupervisorMode)、和机器态(MachineMode)。这三种特权等级对应着不同的操作系统和应用场景,提供了不同级别的访问权限。1.权限表示定义下面三个参数来表示不同的
- 开源模型应用落地-qwen-7b-chat与vllm实现推理加速的正确姿势(二)
charles_vaez
开源大语言模型-实际应用落地开源交互
一、术语介绍1.1.Gunicorn一个用于运行PythonWeb应用程序的HTTP服务器。它是一个基于UNIX的预叉(pre-fork)服务器,专为在高并发环境中运行PythonWeb应用程序而设计。1.2.Flask一个轻量级的PythonWeb框架,用于构建Web应用程序。它被设计成简单易用且灵活的框架,提供了基本的功能和工具,同时保持了扩展性和可定制性。1.3.Supervisor一个用于
- 详解supervisor配置与案例
燃灯工作室
LinuxPythonlinux运维网络
1.安装supervisoryuminstall-yepel-releaseyuminstall-ysupervisor2.修改supervisord的配置文件,引入任务文件默认配置文件:/etc/supervisord.conf进程管理配置文件放到:/etc/supervisord.d/目录下即可#修改/etc/supervisord.conf的include下的files=supervisor
- 三. Cortex-A7简介
xuechw5
嵌入式ARM学习笔记arm开发
Cortex-A7简介1.运行模型2.寄存器组3.汇编基础(1)汇编语法基本语句字段(2)数据传输指令(3)存储器访问指令(4)压栈和出栈指令(5)跳转指令(6)算数运算指令(7)逻辑运算指令1.运行模型九种运行模型:User、FIQ、IRQ、Supervisor(SVC)、Abort、Undef、Monitor、Hyp和System除了User(USR)用户模式以外,其它8种运行模式都是特权模式
- 系统移植—1.1 Cortex-A7架构
竹影行风
GNULinux
一、Cortex-A7MPCore Cortex-A7基于ARMv7-A架构,于2011年发布,它支持1-4核,通常和Cortex-A15搭配使用。在28nm工艺下,Cortex-A7运行在1.2-1.6GHz,功耗小于100mW。 多核配置如下图所示:二、运行模型 Cortex-A7共有9种处理模式:User、FIQ、IRQ、Supervisor(SVC)、Abort、Undef、Syst
- Linux学习(2)Cortex-A7架构详细介绍
caoniu0529
Linux学习linux学习架构
这里写目录标题Cortex-A7框架运行模式Cortex-A寄存器组(内核寄存器)通用寄存器未备份寄存器备份寄存器(R8~R12)R13SP堆栈指针R14LR连接寄存器R15PC程序计数器程序状态寄存器CPSRCortex-A7框架运行模式Cortex-A处理器九种运行模式以前的ARM处理器有7种运行模型:User、FIQ、IRQ、Supervisor(SVC)、Abort、Undef和Syste
- Docker + Flask + gunicorn + nginx + supervisord 部署服务
等风来不如追风去
pythonWebnginxflaskdockernginxgunicornpython
DockerfileFROMregistry.cn-hangzhou.aliyuncs.com/hzmodi/python3.8:v2RUNsed-i"s@/archive.ubuntu.com/@/mirrors.163.com/@g"/etc/apt/sources.list\&&rm-rf/var/lib/apt/lists/*\&&apt-getupdate--fix-missing-oA
- gunicorn日志--access-logformat不起作用
waketzheng
gunicorn
使用gunicorn+supervisor启动fastapi服务,命令如下:gunicornmain:app--workers2--worker-classuvicorn.workers.UvicornWorker--bind127.0.0.1:8000--access-logfile'-'其中accesslog记录到的内容如下:176.123.7.11:0-"GET/HTTP/1.0"200只记
- 最新2022年Docker面试题高级面试题及附答案解析
Java精选
面试资料容器dokcer容器docker面试题docker资料
所有面试题资料来源:https://www.yoodb.com/Docker题1:如何临时退出一个正在交互的容器的终端,而不终止它?按ctrl-pCtrl-q。如果按ctrl-c往往会让容器内应用进程终止,进而会终止容器。题2:Docker中一个容器可以同时运行多个应用进程吗?一般不推荐在用以容器内运行多个应用进程,如果有类似需求,可以用过额外的进程管理机制,比如supervisord来管理所运行
- flask+nginx+gunicorn+supervisor云部署系统全步骤以及出现的问题解决链接
UltramanTiga┗|`O′|┛
Flasklinuxnginxpythonlinux
一.将项目上传至服务器pycharm同步服务器和本地源码参考此处链接二.项目环境配置1.安装python3,pip3,virtualenvwrapper。参考此处链接之后的操作都要在virtualenvwrapper创建的虚拟环境中设置喔workon虚拟环境名#进入虚拟环境2.在创建单环境的时候,可在原环境导出requirements.txt,然后在新环境内安装。参考此处链接pip安装时可能出现的
- 服务器指示灯说明
运筹帷幄的梦想家Sir
技术文档运维
一、光通路诊断板1、overspec指示灯:当此指示灯发亮时,表明对电源的需求超过了指定的电源供应。(说明电源用错了)2、log指示灯:当此指示灯发亮时,表明您应该查看事件日志或remotesupervisor3、LINK:4、PS指示灯:当此指示灯发亮时,表明电源1出现故障。ps2指示灯:当此指示灯发亮时,表明电源2出现故障。(电源没上好也是亮电源报警)5、pci指示灯:当此指示灯发亮时,表明某
- Django项目部署
唯美清泠
Django
文章目录在开发机上的准备工作在服务器上的准备工作配置国内yum源编译安装Python3安装virtualenv安装MySQL5.7安装redis安装memcached生产环境下Django项目的配置安装uwsgi安装nginxsupervisor管理uwsgi在开发机上的准备工作确认项目没有bug用开发项目的虚拟环境进入Django的项目目录,用pipfreeze>requirements.txt
- Activity启动流程分析三 ActivityStackSupervisor启动Activity ClientTransaction在AMS和App之间的通信
今晚打老虎666
FrameWorkandroidjvm前端java开发语言
ActivityStackSupervisor启动Activity在之前的分析里面,ActivityStarter在计算完源activty栈,目标activty栈和启动模式后,把后续的启动流程交给RootWindowContainer了。在resumeFocusedStacksTopActivities方法里面继续启动流程。resumeFocusedStacksTopActivities这个方法我
- Activity启动流程分析四 ActivtyB的生命周期执行和ActivityA的生命周期执行
今晚打老虎666
FrameWorkzygotejava开发语言jvmandroid
事务处理器TransactionExecutor处理AMS跨进程传给App进程的事务ClientTransaction之前分析到ActivityStackSupervisor,这个类中,AMS把希望ActivityB触发的起始生命周期和结束生命周期封装成ClientTransaction,通过Binder实现跨进程通信把ClientTransaction传递给了App进程。在ActivityThr
- 一些kotlin协程的具体运用
山山而川_eb3b
前言启动一个协程suspend关键字suspend挂起与恢复CoroutineScope一些协程函数和apirunBlocking函数coroutineScope函数supervisorScope函数Jobasync协程的懒加载withContextwithTimeout启动一个协程成员变量并取消协程的异常处理compose中启动一些协程Androidktx的协程协程相关测试在测试中的调度器前言本
- ubuntu 20.04 supervisor开机自启动ros2 节点
运动男孩JC
ROS2shellubuntulinux服务器
第一种方式(systemctl)系统:ubuntu20.04ros2版本:foxy第一步:添加服务脚本,如下,添加了[Install]下面两句,使用者为多用户$sudovi/etc/systemd/system/rc-local.service[Unit]Description=/etc/rc.localCompatibilityConditionPathExists=/etc/rc.local[
- Ubuntu server如何使用 Daphne + Nginx + supervisor部署 Django
轻编程
Djangoubuntunginxdjango
Django从3.0版开始加入对ASGI的支持,使Django开始具有异步功能。截止目前的5.0版,对异步支持逐步也越来越好,相信在未来的版本中异步将会支持的更加完善。所以说,我们也需要适时的更新我们的技能,学会在asgi异步服务器环境中部署django项目!在部署之前我们所有的依赖均隔离在python的虚拟环境中,并不是在全局环境中,包括supervisor也是通过pip命令安装到虚拟环境中使用
- (一)NanoPi m4v2 安装 Home Assistant(含 supervisor)
sunzq55
nanopi物联网linux服务器homeassistantnanopisupervised
一、环境硬件:NanoPim4v2。。。系统:Armbian。。。(基于Debian11)二、尝试的方法开始直接在docker中拉取镜像安装,但是安装完成后,发现没有supervisor,没法集成米家的设备;直接安装hassos比较方便省事,直接从官网下载对应版本的镜像安装即可。但是shell没办法开启ssh;所以最终是通过supervised方式安装,这种本质上也是安装在docker中,但是根据
- Linux/Luanne
ve9etable
HackTheBox网络安全web安全
Enumerationnmap首先扫描目标端口对外开放情况,第一轮扫描发现对外开放了22,80,9001三个端口,端口详细信息如下TCP/90019001端口挺神奇,nmap给出的结果是在9001端口运行着MedusaSupervisor,访问站点发现了一个登录框在谷歌中搜索,查看默认用户名密码尝试使用该用户名密码登录看起来是在监控一些程序的运行,可以对服务进行重启,关闭,清除日志等操作点击Tai
- dockerfile报错:failed to solve: process
道甚夷
docker
failedtosolve:process“/bin/sh-capt-getupdate&&apt-getinstall-ylibcurl4-openssl-devlibssl-devsupervisorunzipzlib1g-dev--no-install-recommends&&docker-php-ext-installpdo_mysql&&peclchannel-updatepecl.ph
- node热更新包
三人_
supervisor安装npmi-gsupervisor启动supervisorapp.js就是这么简单
- supervisord的使用
Zhang小二
英文原文:http://www.supervisord.org/configuration.html简述supervisord是使用python开发的一套进程管理工具,能够将普通进程以daemon的方式启动,并监控进程状态。跟随文件,简单部署并使用了一下,感受如下:1、安装比较简单,先安装setuptools、meld3依赖包,然后安装supervisor包。2、配置也不算麻烦,虽然提供了很多可选
- 龙芯内核启动流程(一)
Hacker_Albert
linuxloongson
了解龙芯内核启动流程。1.MIPSCPUAddress MIPSCPU运行时有三种状态:用户模式(UserMode);核心模式(KernelMode);管理模式(SupervisorMode)。其中管理模式不常用。用户模式下,CPU只能访问KUSeg;当需要访问KSeg0、Kseg1和Kseg2时,必须使用核心模式或管理模式。 32位MIPSCPU将程序地址空间分为4部分:Kuseg:0×00
- CentOS7离线安装supervisor
deserve1218
python
1.安装meldwgethttps://pypi.python.org/packages/45/a0/317c6422b26c12fe0161e936fc35f36552069ba8e6f7ecbd99bbffe32a5f/meld3-1.0.2.tar.gz#md5=3ccc78cd79cffd63a751ad7684c02c91tar-zxvfmeld3-1.0.2.tar.gzcdmeld3
- 多线程编程之join()方法
周凡杨
javaJOIN多线程编程线程
现实生活中,有些工作是需要团队中成员依次完成的,这就涉及到了一个顺序问题。现在有T1、T2、T3三个工人,如何保证T2在T1执行完后执行,T3在T2执行完后执行?问题分析:首先问题中有三个实体,T1、T2、T3, 因为是多线程编程,所以都要设计成线程类。关键是怎么保证线程能依次执行完呢?
Java实现过程如下:
public class T1 implements Runnabl
- java中switch的使用
bingyingao
javaenumbreakcontinue
java中的switch仅支持case条件仅支持int、enum两种类型。
用enum的时候,不能直接写下列形式。
switch (timeType) {
case ProdtransTimeTypeEnum.DAILY:
break;
default:
br
- hive having count 不能去重
daizj
hive去重having count计数
hive在使用having count()是,不支持去重计数
hive (default)> select imei from t_test_phonenum where ds=20150701 group by imei having count(distinct phone_num)>1 limit 10;
FAILED: SemanticExcep
- WebSphere对JSP的缓存
周凡杨
WAS JSP 缓存
对于线网上的工程,更新JSP到WebSphere后,有时会出现修改的jsp没有起作用,特别是改变了某jsp的样式后,在页面中没看到效果,这主要就是由于websphere中缓存的缘故,这就要清除WebSphere中jsp缓存。要清除WebSphere中JSP的缓存,就要找到WAS安装后的根目录。
现服务
- 设计模式总结
朱辉辉33
java设计模式
1.工厂模式
1.1 工厂方法模式 (由一个工厂类管理构造方法)
1.1.1普通工厂模式(一个工厂类中只有一个方法)
1.1.2多工厂模式(一个工厂类中有多个方法)
1.1.3静态工厂模式(将工厂类中的方法变成静态方法)
&n
- 实例:供应商管理报表需求调研报告
老A不折腾
finereport报表系统报表软件信息化选型
引言
随着企业集团的生产规模扩张,为支撑全球供应链管理,对于供应商的管理和采购过程的监控已经不局限于简单的交付以及价格的管理,目前采购及供应商管理各个环节的操作分别在不同的系统下进行,而各个数据源都独立存在,无法提供统一的数据支持;因此,为了实现对于数据分析以提供采购决策,建立报表体系成为必须。 业务目标
1、通过报表为采购决策提供数据分析与支撑
2、对供应商进行综合评估以及管理,合理管理和
- mysql
林鹤霄
转载源:http://blog.sina.com.cn/s/blog_4f925fc30100rx5l.html
mysql -uroot -p
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
[root@centos var]# service mysql
- Linux下多线程堆栈查看工具(pstree、ps、pstack)
aigo
linux
原文:http://blog.csdn.net/yfkiss/article/details/6729364
1. pstree
pstree以树结构显示进程$ pstree -p work | grep adsshd(22669)---bash(22670)---ad_preprocess(4551)-+-{ad_preprocess}(4552) &n
- html input与textarea 值改变事件
alxw4616
JavaScript
// 文本输入框(input) 文本域(textarea)值改变事件
// onpropertychange(IE) oninput(w3c)
$('input,textarea').on('propertychange input', function(event) {
console.log($(this).val())
});
- String类的基本用法
百合不是茶
String
字符串的用法;
// 根据字节数组创建字符串
byte[] by = { 'a', 'b', 'c', 'd' };
String newByteString = new String(by);
1,length() 获取字符串的长度
&nbs
- JDK1.5 Semaphore实例
bijian1013
javathreadjava多线程Semaphore
Semaphore类
一个计数信号量。从概念上讲,信号量维护了一个许可集合。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。
S
- 使用GZip来压缩传输量
bijian1013
javaGZip
启动GZip压缩要用到一个开源的Filter:PJL Compressing Filter。这个Filter自1.5.0开始该工程开始构建于JDK5.0,因此在JDK1.4环境下只能使用1.4.6。
PJL Compressi
- 【Java范型三】Java范型详解之范型类型通配符
bit1129
java
定义如下一个简单的范型类,
package com.tom.lang.generics;
public class Generics<T> {
private T value;
public Generics(T value) {
this.value = value;
}
}
- 【Hadoop十二】HDFS常用命令
bit1129
hadoop
1. 修改日志文件查看器
hdfs oev -i edits_0000000000000000081-0000000000000000089 -o edits.xml
cat edits.xml
修改日志文件转储为xml格式的edits.xml文件,其中每条RECORD就是一个操作事务日志
2. fsimage查看HDFS中的块信息等
&nb
- 怎样区别nginx中rewrite时break和last
ronin47
在使用nginx配置rewrite中经常会遇到有的地方用last并不能工作,换成break就可以,其中的原理是对于根目录的理解有所区别,按我的测试结果大致是这样的。
location /
{
proxy_pass http://test;
- java-21.中兴面试题 输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 , 使其和等于 m
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
public class CombinationToSum {
/*
第21 题
2010 年中兴面试题
编程求解:
输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 ,
使其和等
- eclipse svn 帐号密码修改问题
开窍的石头
eclipseSVNsvn帐号密码修改
问题描述:
Eclipse的SVN插件Subclipse做得很好,在svn操作方面提供了很强大丰富的功能。但到目前为止,该插件对svn用户的概念极为淡薄,不但不能方便地切换用户,而且一旦用户的帐号、密码保存之后,就无法再变更了。
解决思路:
删除subclipse记录的帐号、密码信息,重新输入
- [电子商务]传统商务活动与互联网的结合
comsci
电子商务
某一个传统名牌产品,过去销售的地点就在某些特定的地区和阶层,现在进入互联网之后,用户的数量群突然扩大了无数倍,但是,这种产品潜在的劣势也被放大了无数倍,这种销售利润与经营风险同步放大的效应,在最近几年将会频繁出现。。。。
如何避免销售量和利润率增加的
- java 解析 properties-使用 Properties-可以指定配置文件路径
cuityang
javaproperties
#mq
xdr.mq.url=tcp://192.168.100.15:61618;
import java.io.IOException;
import java.util.Properties;
public class Test {
String conf = "log4j.properties";
private static final
- Java核心问题集锦
darrenzhu
java基础核心难点
注意,这里的参考文章基本来自Effective Java和jdk源码
1)ConcurrentModificationException
当你用for each遍历一个list时,如果你在循环主体代码中修改list中的元素,将会得到这个Exception,解决的办法是:
1)用listIterator, 它支持在遍历的过程中修改元素,
2)不用listIterator, new一个
- 1分钟学会Markdown语法
dcj3sjt126com
markdown
markdown 简明语法 基本符号
*,-,+ 3个符号效果都一样,这3个符号被称为 Markdown符号
空白行表示另起一个段落
`是表示inline代码,tab是用来标记 代码段,分别对应html的code,pre标签
换行
单一段落( <p>) 用一个空白行
连续两个空格 会变成一个 <br>
连续3个符号,然后是空行
- Gson使用二(GsonBuilder)
eksliang
jsongsonGsonBuilder
转载请出自出处:http://eksliang.iteye.com/blog/2175473 一.概述
GsonBuilder用来定制java跟json之间的转换格式
二.基本使用
实体测试类:
温馨提示:默认情况下@Expose注解是不起作用的,除非你用GsonBuilder创建Gson的时候调用了GsonBuilder.excludeField
- 报ClassNotFoundException: Didn't find class "...Activity" on path: DexPathList
gundumw100
android
有一个工程,本来运行是正常的,我想把它移植到另一台PC上,结果报:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mobovip.bgr/com.mobovip.bgr.MainActivity}: java.lang.ClassNotFoundException: Didn't f
- JavaWeb之JSP指令
ihuning
javaweb
要点
JSP指令简介
page指令
include指令
JSP指令简介
JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。
JSP指令的基本语法格式:
<%@ 指令 属性名="
- mac上编译FFmpeg跑ios
啸笑天
ffmpeg
1、下载文件:https://github.com/libav/gas-preprocessor, 复制gas-preprocessor.pl到/usr/local/bin/下, 修改文件权限:chmod 777 /usr/local/bin/gas-preprocessor.pl
2、安装yasm-1.2.0
curl http://www.tortall.net/projects/yasm
- sql mysql oracle中字符串连接
macroli
oraclesqlmysqlSQL Server
有的时候,我们有需要将由不同栏位获得的资料串连在一起。每一种资料库都有提供方法来达到这个目的:
MySQL: CONCAT()
Oracle: CONCAT(), ||
SQL Server: +
CONCAT() 的语法如下:
Mysql 中 CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起。
请注意,Oracle的CON
- Git fatal: unab SSL certificate problem: unable to get local issuer ce rtificate
qiaolevip
学习永无止境每天进步一点点git纵观千象
// 报错如下:
$ git pull origin master
fatal: unable to access 'https://git.xxx.com/': SSL certificate problem: unable to get local issuer ce
rtificate
// 原因:
由于git最新版默认使用ssl安全验证,但是我们是使用的git未设
- windows命令行设置wifi
surfingll
windowswifi笔记本wifi
还没有讨厌无线wifi的无尽广告么,还在耐心等待它慢慢启动么
教你命令行设置 笔记本电脑wifi:
1、开启wifi命令
netsh wlan set hostednetwork mode=allow ssid=surf8 key=bb123456
netsh wlan start hostednetwork
pause
其中pause是等待输入,可以去掉
2、
- Linux(Ubuntu)下安装sysv-rc-conf
wmlJava
linuxubuntusysv-rc-conf
安装:sudo apt-get install sysv-rc-conf 使用:sudo sysv-rc-conf
操作界面十分简洁,你可以用鼠标点击,也可以用键盘方向键定位,用空格键选择,用Ctrl+N翻下一页,用Ctrl+P翻上一页,用Q退出。
背景知识
sysv-rc-conf是一个强大的服务管理程序,群众的意见是sysv-rc-conf比chkconf
- svn切换环境,重发布应用多了javaee标签前缀
zengshaotao
javaee
更换了开发环境,从杭州,改变到了上海。svn的地址肯定要切换的,切换之前需要将原svn自带的.svn文件信息删除,可手动删除,也可通过废弃原来的svn位置提示删除.svn时删除。
然后就是按照最新的svn地址和规范建立相关的目录信息,再将原来的纯代码信息上传到新的环境。然后再重新检出,这样每次修改后就可以看到哪些文件被修改过,这对于增量发布的规范特别有用。
检出