Browse Source

feat: add searchd --quiet flag

Related PR https://github.com/manticoresoftware/manticoresearch/pull/4088
Sergey Nikolaev 1 month ago
parent
commit
661edebcfb

File diff suppressed because it is too large
+ 0 - 0
.translation-cache/References.md.json


File diff suppressed because it is too large
+ 5 - 0
.translation-cache/Starting_the_server/Manually.md.json


+ 23 - 23
manual/chinese/References.md

@@ -514,33 +514,34 @@ searchd [OPTIONS]
 ```
 * [--config, -c](Starting_the_server/Manually.md#searchd-command-line-options) - 指定配置文件的路径
 * [--console](Starting_the_server/Manually.md#searchd-command-line-options) - 强制服务器以控制台模式运行
-* [--coredump](Starting_the_server/Manually.md#searchd-command-line-options) - 启用崩溃时保存核心转储
-* [--cpustats](Starting_the_server/Manually.md#searchd-command-line-options) - 启用 CPU 时间报告
-* [--delete](Starting_the_server/Manually.md#searchd-command-line-options) - 从 Microsoft 管理控制台及其他注册服务的位置移除 Manticore 服务
-* [--force-preread](Starting_the_server/Manually.md#searchd-command-line-options) - 防止服务器在表文件预读完成前服务传入连接
+* [--coredump](Starting_the_server/Manually.md#searchd-command-line-options) - 在崩溃时启用核心转储保存
+* [--cpustats](Starting_the_server/Manually.md#searchd-command-line-options) - 启用CPU时间报告
+* [--delete](Starting_the_server/Manually.md#searchd-command-line-options) - 从Microsoft管理控制台和其他服务注册位置删除Manticore服务
+* [--force-preread](Starting_the_server/Manually.md#searchd-command-line-options) - 在表文件预读完成前阻止服务器处理传入连接
 * [--help, -h](Starting_the_server/Manually.md#searchd-command-line-options) - 显示所有可用参数
-* [--table (--index)](Starting_the_server/Manually.md#searchd-command-line-options) - 限制服务器只服务指定的表
-* [--install](Starting_the_server/Manually.md#searchd-command-line-options) - 将 searchd 安装为 Microsoft 管理控制台中的服务
+* [--quiet, -q](Starting_the_server/Manually.md#searchd-command-line-options) - 仅在启动时打印错误
+* [--table (--index)](Starting_the_server/Manually.md#searchd-command-line-options) - 限制服务器仅服务指定的表
+* [--install](Starting_the_server/Manually.md#searchd-command-line-options) - 在Microsoft管理控制台中将searchd安装为服务
 * [--iostats](Starting_the_server/Manually.md#searchd-command-line-options) - 启用输入/输出报告
-* [--listen, -l](Starting_the_server/Manually.md#searchd-command-line-options) - 覆盖配置文件中的 [listen](Server_settings/Searchd.md#listen)
-* [--logdebug, --logdebugv, --logdebugvv](Starting_the_server/Manually.md#searchd-command-line-options) - 启用在服务器日志中的额外调试输出
-* [--logreplication](Starting_the_server/Manually.md#searchd-command-line-options) - 启用在服务器日志中的额外复制调试输出
-* [--new-cluster](Starting_the_server/Manually.md#searchd-command-line-options) - 初始化复制集群,并将服务器设置为带有 [集群重启](Creating_a_cluster/Setting_up_replication/Restarting_a_cluster.md) 保护的参考节点
-* [--new-cluster-force](Starting_the_server/Manually.md#searchd-command-line-options) - 初始化复制集群,并将服务器设置为参考节点,跳过 [集群重启](Creating_a_cluster/Setting_up_replication/Restarting_a_cluster.md) 保护
-* [--nodetach](Starting_the_server/Manually.md#searchd-command-line-options) - 使 searchd 保持在前台运行
-* [--ntservice](Starting_the_server/Manually.md#searchd-command-line-options) - 由 Microsoft 管理控制台用于在 Windows 平台上以服务方式启动 searchd
-* [--pidfile](Starting_the_server/Manually.md#searchd-command-line-options) - 覆盖配置文件中的 [pid_file](Server_settings/Searchd.md#pid_file)
-* [--port, p](Starting_the_server/Manually.md#searchd-command-line-options) - 指定 searchd 应监听的端口,忽略配置文件中指定的端口
-* [--replay-flags](Starting_the_server/Manually.md#searchd-command-line-options) - 设置附加的二进制日志重放选项
-* [--servicename](Starting_the_server/Manually.md#searchd-command-line-options) - 在安装或删除服务时,为 searchd 指定名称,该名称显示在 Microsoft 管理控制台中
-* [--status](Starting_the_server/Manually.md#searchd-command-line-options) - 查询运行的搜索服务以返回其状态
-* [--stop](Starting_the_server/Manually.md#searchd-command-line-options) - 停止 Manticore 服务器
-* [--stopwait](Starting_the_server/Manually.md#searchd-command-line-options) - 优雅地停止 Manticore 服务器
-* [--strip-path](Starting_the_server/Manually.md#searchd-command-line-options) - 从表中引用的所有文件名中除路径名
+* [--listen, -l](Starting_the_server/Manually.md#searchd-command-line-options) - 覆盖配置文件中的[listen](Server_settings/Searchd.md#listen)
+* [--logdebug, --logdebugv, --logdebugvv](Starting_the_server/Manually.md#searchd-command-line-options) - 在服务器日志中启用额外的调试输出
+* [--logreplication](Starting_the_server/Manually.md#searchd-command-line-options) - 在服务器日志中启用额外的复制调试输出
+* [--new-cluster](Starting_the_server/Manually.md#searchd-command-line-options) - 初始化复制集群并设置服务器作为参考节点,带有[集群重启](Creating_a_cluster/Setting_up_replication/Restarting_a_cluster.md)保护
+* [--new-cluster-force](Starting_the_server/Manually.md#searchd-command-line-options) - 初始化复制集群并设置服务器作为参考节点,绕过[集群重启](Creating_a_cluster/Setting_up_replication/Restarting_a_cluster.md)保护
+* [--nodetach](Starting_the_server/Manually.md#searchd-command-line-options) - 保持searchd在前台运行
+* [--ntservice](Starting_the_server/Manually.md#searchd-command-line-options) - 由Microsoft管理控制台用于在Windows平台将searchd作为服务启动
+* [--pidfile](Starting_the_server/Manually.md#searchd-command-line-options) - 覆盖配置文件中的[pid_file](Server_settings/Searchd.md#pid_file)
+* [--port, p](Starting_the_server/Manually.md#searchd-command-line-options) - 指定searchd应监听的端口,忽略配置文件中指定的端口
+* [--replay-flags](Starting_the_server/Manually.md#searchd-command-line-options) - 设置额外的二进制日志重放选项
+* [--servicename](Starting_the_server/Manually.md#searchd-command-line-options) - 在安装或删除服务时为searchd分配给定名称,如Microsoft管理控制台中显示的名称
+* [--status](Starting_the_server/Manually.md#searchd-command-line-options) - 查询正在运行的搜索服务以返回其状态
+* [--stop](Starting_the_server/Manually.md#searchd-command-line-options) - 停止Manticore服务器
+* [--stopwait](Starting_the_server/Manually.md#searchd-command-line-options) - 优雅地停止Manticore服务器
+* [--strip-path](Starting_the_server/Manually.md#searchd-command-line-options) - 从表中引用的所有文件名中除路径名
 * [-v](Starting_the_server/Manually.md#searchd-command-line-options) - 显示版本信息
 
 ##### Searchd 环境变量
-* [MANTICORE_TRACK_DAEMON_SHUTDOWN](Starting_the_server/Manually.md#Environment-variables) - 在 searchd 关闭期间启用详细日志记录
+* [MANTICORE_TRACK_DAEMON_SHUTDOWN](Starting_the_server/Manually.md#Environment-variables) - 在searchd关闭期间启用详细日志记录
 
 ## [Indextool](Miscellaneous_tools.md#indextool)
 各种有助于故障排除的表维护功能。
@@ -663,4 +664,3 @@ AND, AS, BY, COLUMNARSCAN, DISTINCT, DIV, DOCIDINDEX, EXPLAIN, FACET, FALSE, FOR
 * [14.1.0](https://manual.manticoresearch.com/manticore-14-1-0/). [安装页面](https://manticoresearch.com/install-14.1.0/)
 * [15.1.0](https://manual.manticoresearch.com/manticore-15-1-0/). [安装页面](https://manticoresearch.com/install-15.1.0/)
 <!-- proofread -->
-

+ 27 - 27
manual/chinese/Starting_the_server/Manually.md

@@ -1,12 +1,12 @@
 # 手动启动 Manticore
 
-你也可以通过直接调用 `searchd`(Manticore 搜索服务器二进制文件)来启动 Manticore 搜索
+您也可以通过直接调用 `searchd`(Manticore Search 服务器二进制文件)来启动 Manticore Search
 
 ```shell
 searchd [OPTIONS]
 ```
 
-请注意,如果没有指定配置文件路径,`searchd` 将根据操作系统在几个位置尝试找它。
+请注意,如果没有指定配置文件路径,`searchd` 将根据操作系统在几个位置尝试找它。
 
 
 ## searchd 命令行选项
@@ -14,60 +14,61 @@ searchd [OPTIONS]
 
 在所有操作系统中,`searchd` 可用的选项包括:
 
-* `--help` (`-h` 简写) 列出你特定版本的 `searchd` 可以使用的所有参数。
-* `--version` (`-v` 简写) 显示 Manticore 搜索版本信息。
-* `--config <file>` (`-c <file>` 简写) 告诉 `searchd` 使用指定的文件作为其配置。
-* `--stop` 用于异步停止 `searchd`,使用 Manticore 配置文件中指定的 PID 文件详细信息。因此,你可能还需要使用 `--config` 选项告诉 `searchd` 使用哪个配置文件。示例:
+* `--help`(简写为 `-h`)列出在您当前构建的 `searchd` 中可以使用的所有参数。
+* `--version`(简写为 `-v`)显示 Manticore Search 的版本信息。
+* `--quiet`(简写为 `-q`)抑制启动输出,仅显示错误(横幅和预加载消息)。
+* `--config <file>`(简写为 `-c <file>`)告诉 `searchd` 使用指定的文件作为其配置。
+* `--stop` 用于异步停止 `searchd`,使用 Manticore 配置文件中指定的 PID 文件详细信息。因此,您可能还需要通过 `--config` 选项向 `searchd` 确认要使用的配置文件。示例:
 
   ```bash
   $ searchd --config /etc/manticoresearch/manticore.conf --stop
   ```
 
-* `--stopwait` 用于同步停止 `searchd`。`--stop` 本上告诉运行的实例退出(通过发送 SIGTERM),然后立即返回。`--stopwait` 也会尝试等待运行中的 `searchd` 实例实际完成关闭(例如,保存所有待处理的属性更改)并退出。示例:
+* `--stopwait` 用于同步停止 `searchd`。`--stop` 本告诉正在运行的实例退出(通过发送 SIGTERM),然后立即返回。`--stopwait` 还会尝试等待直到正在运行的 `searchd` 实例实际完成关闭(例如,保存所有待处理的属性更改)并退出。示例:
 
   ```bash
   $ searchd --config /etc/manticoresearch/manticore.conf --stopwait
   ```
   可能的退出代码如下:
-    * 0 表示成功
-    * 1 如果连接到运行中的搜索服务器失败
-    * 2 如果服务器在关闭过程中报告错误
-    * 3 如果服务器在关闭过程中崩溃
+    * 成功时为 0
+    * 如果连接到正在运行的 searchd 服务器失败时为 1
+    * 如果服务器在关闭期间报告错误时为 2
+    * 如果服务器在关闭期间崩溃时为 3
 
-* `--status` 命令用于使用从(可选提供的)配置文件中提供的连接详细信息查询运行中的 `searchd` 实例状态。它将尝试使用配置文件中找到的第一个 UNIX 套接字或 TCP 端口连接到运行中的实例。成功后,它将查询一些状态和性能计数器值并打印它们。你也可以使用 [SHOW STATUS](../Node_info_and_management/Node_status.md#SHOW-STATUS) 命令通过 SQL 协议访问相同的计数器。示例:
+* `--status` 命令用于通过配置文件(可选提供)中的连接详细信息查询正在运行的 `searchd` 实例状态。它将尝试使用配置文件中找到的第一个 UNIX 套接字或 TCP 端口连接到正在运行的实例。成功时,它将查询多个状态和性能计数器值并打印出来。您也可以使用 [SHOW STATUS](../Node_info_and_management/Node_status.md#SHOW-STATUS) 命令通过 SQL 协议访问相同的计数器。示例:
 
   ```bash
   $ searchd --status
   $ searchd --config /etc/manticoresearch/manticore.conf --status
   ```
 
-* `--pidfile` 用于强制使用 PID 文件(其中存储 `searchd` 进程标识号),即使其他调试选项与此相反(例如,`--console`)。这是一个调试选项。
+* `--pidfile` 用于显式强制使用 PID 文件(其中存储 `searchd` 进程标识号),即使其他调试选项另有说明(例如,`--console`)。这是一个调试选项。
 
   ```bash
   $ searchd --console --pidfile
   ```
 
-* `--console` 用于强制 `searchd` 进入控制台模式。通常,Manticore 作为常规服务器应用程序运行,并将信息记录到日志文件(如配置文件中指定的)。但在调试配置或服务器本身的问题时,或者尝试诊断难以追踪的问题时,强制它直接将信息输出到调用它的控制台/命令行可能会更容易。以控制台模式运行意味着该进程不会被分叉(因此搜索按顺序进行),并且不会写入日志。(需要注意的是,控制台模式不是运行 `searchd` 的预期方法。)可以这样调用它:
+* `--console` 用于强制 `searchd` 进入控制台模式。通常,Manticore 作为常规服务器应用程序运行,并将信息记录到日志文件中(如配置文件中指定)。但是,当调试配置或服务器本身的问题,或尝试诊断难以追踪的问题时,强制它直接将信息转储到调用它的控制台/命令行可能更方便。在控制台模式下运行还意味着进程不会分叉(因此搜索是顺序进行的),并且不会写入日志。(需要注意的是,控制台模式不是运行 `searchd` 的预期方法。)可以这样调用它:
 
   ```bash
   $ searchd --config /etc/manticoresearch/manticore.conf --console
   ```
 
-* `--logdebug`、`--logreplication`、`--logdebugv` 和 `--logdebugvv` 选项启用服务器日志中的附加调试输出。它们的详细程度不同。这些是调试选项,通常不应启用,因为它们可能会污染日志。在需要时可以临时启用以协助复杂的调试会话。
+* `--logdebug`、`--logreplication`、`--logdebugv` 和 `--logdebugvv` 选项用于在服务器日志中启用额外的调试输出。它们的区别在于日志详细程度级别。这些是调试选项,通常不应启用,因为它们可能会大量污染日志。它们可以临时启用以协助复杂的调试会话。
 
-* `--iostats` 与日志选项一起使用(必须在 `manticore.conf` 中激活 `query_log`)时,可以提供有关查询过程中执行的输入/输出操作的更详细信息,带有轻微的性能开销和更大的日志。I/O 统计信息不包括通过 mmap 加载的属性的 I/O 操作信息。要启用它,可以按如下方式启动 `searchd`:
+* `--iostats` 与日志选项(`manticore.conf` 中必须已激活 `query_log`)一起使用,以提供有关查询过程中执行的输入/输出操作的更详细信息,这会带来轻微的性能损失和稍大的日志。IO 统计信息不包括属性的 IO 操作信息,因为这些是通过 mmap 加载的。要启用它,您可以这样启动 `searchd`:
 
   ```bash
   $ searchd --config /etc/manticoresearch/manticore.conf --iostats
   ```
 
-* `--cpustats` 用于提供实际 CPU 时间报告(包括墙钟时间)在查询日志文件(每个给定的查询)和状态报告(聚合)中。它依赖于 `clock_gettime()` Linux 系统调用,或在某些系统上退回到较不精确的调用。你可以这样启动 `searchd`:
+* `--cpustats` 用于在查询日志文件(每个查询)和状态报告(聚合)中提供实际的 CPU 时间报告(除了墙时间)。它依赖于 Linux 系统调用 `clock_gettime()`,或者在某些系统上回退到较不精确的调用。您可以这样启动 `searchd`:
 
   ```bash
   $ searchd --config /etc/manticoresearch/manticore.conf --cpustats
   ```
 
-* `--port portnumber` (`-p` 简写) 用于指定 Manticore 应监听的端口以接受二进制协议请求,通常用于调试目的。这通常默认为 9312,但有时需要在不同的端口上运行。通过命令行指定它将覆盖配置文件中指定的内容。有效的范围是 0 到 65535,但编号为 1024 及以下的端口通常需要特权账户才能运行。
+*  `--port portnumber`(简写为 `-p`)用于指定 Manticore 应监听以接受二进制协议请求的端口,通常用于调试目的。这通常默认为 9312,但有时需要在不同的端口上运行。在命令行上指定它将覆盖配置文件中指定的任何内容。有效范围是 0 到 65535,但 1024 及以下的端口通常需要特权账户才能运行。
 
   使用示例:
 
@@ -75,11 +76,11 @@ searchd [OPTIONS]
   $ searchd --port 9313
   ```
 
-* `--listen ( address ":" port | port | path ) [ ":" protocol ]`(或 `-l` 简写)与 `--port` 一起使用,但允许你不仅指定端口,还可以指定 `searchd` 将监听的完整路径、IP 地址和端口或 Unix 域套接字路径。换句话说,你可以指定 IP 地址(或主机名)和端口号、仅端口号或 Unix 套接字路径。如果你只指定端口号但没有指定地址,`searchd` 将监听所有网络接口。Unix 路径由前导斜杠标识。作为最后一个参数,你还可以指定用于此套接字上的连接的协议处理器(监听器)。支持的协议值为 'sphinx' 和 'mysql'(自 4.1 版本起使用 MySQL 协议)。
+* `--listen ( address ":" port | port | path ) [ ":" protocol ]`(或 `-l` 简写)与 `--port` 的作用相同,但允许您指定不仅仅是端口,还可以指定完整的路径、IP 地址和端口,或 Unix 域套接字路径,`searchd` 将监听这些。换句话说,您可以指定 IP 地址(或主机名)和端口号,仅端口号,或 Unix 套接字路径。如果您指定了端口号但未指定地址,searchd 将监听所有网络接口。Unix 路径通过前导斜杠标识。作为最后一个参数,您还可以指定用于此套接字连接的协议处理程序(监听器)。支持的协议值为 'sphinx' 和 'mysql'(自 4.1 版本以来使用的 MySQL 协议)。
 
-* `--force-preread` 禁止服务器在表文件预读完成之前为任何传入连接提供服务。默认情况下,在启动时,服务器在将表文件懒加载到内存中时接受连接。这扩展了行为并使其等待直到文件加载完成。
+* `--force-preread` 禁止服务器在预读取表文件完成之前服务任何传入连接。默认情况下,在启动时,服务器在表文件懒加载到内存时接受连接。这扩展了该行为,并使其等待直到文件加载完成。
 
-* `--index (--table) <table>`(或 `-i (-t) <table>` 简写)强制此 `searchd` 实例仅服务于指定的表。如上所述,这通常用于调试目的;更长期的更改通常会应用到配置文件本身。
+* `--index (--table) <table>`(或 `-i (-t) <table>` 简写)强制此 `searchd` 实例仅服务指定的表。与上面的 `--port` 一样,这通常用于调试目的;更长期的更改通常会直接应用于配置文件本身。
 
 * `--strip-path` 从表中引用的所有文件名(停用词、词形变化、例外等)中剥离路径名。这对于拾取在另一台机器上构建的表(路径布局可能不同)非常有用。
 
@@ -173,12 +174,11 @@ Manticore 利用 [plugin_dir](../Server_settings/Common.md#plugin_dir) 来存储
 
 `searchd` 支持多个信号:
 
-* `SIGTERM` - 启动干净的关闭。新查询将不会被处理,但已经开始的查询不会被强制中断。
-* `SIGHUP` - 启动表轮换。根据 [seamless_rotate](../Server_settings/Searchd.md#seamless_rotate) 设置的值,新查询可能会短暂等待;客户端将收到临时错误。
-* `SIGUSR1` - 强制重新打开 searchd 日志和查询日志文件,允许日志文件轮换。
+* `SIGTERM` - 初始清理关闭。新查询将不会被处理,但已启动的查询不会被强制中断。  
+* `SIGHUP` - 启动表的旋转。根据 [seamless_rotate](../Server_settings/Searchd.md#seamless_rotate) 设置值,新查询可能会短暂卡住;客户端将收到临时错误。  
+* `SIGUSR1` - 强制重开搜索d日志和查询日志文件,允许日志文件旋转。  
 
-## 环境变量
+## 环境变量  
 
-* `MANTICORE_TRACK_DAEMON_SHUTDOWN=1` 在 searchd 关闭时启用详细日志记录。这在发生某些关闭问题时非常有用,例如 Manticore 关闭时间过长或在关闭过程中冻结。 
+* `MANTICORE_TRACK_DAEMON_SHUTDOWN=1` 启用详细日志,当搜索d关闭时会记录详细信息。这在某些关闭问题中非常有用,例如当Manticore长时间关闭或在关闭过程中冻结时。  
 <!-- proofread -->
-

+ 1 - 1
manual/english/References.md

@@ -519,6 +519,7 @@ searchd [OPTIONS]
 * [--delete](Starting_the_server/Manually.md#searchd-command-line-options) - Removes the Manticore service from Microsoft Management Console and other locations where services are registered
 * [--force-preread](Starting_the_server/Manually.md#searchd-command-line-options) - Prevents the server from serving incoming connections until table files are pre-read
 * [--help, -h](Starting_the_server/Manually.md#searchd-command-line-options) - Displays all available parameters
+* [--quiet, -q](Starting_the_server/Manually.md#searchd-command-line-options) - Only print errors on startup
 * [--table (--index)](Starting_the_server/Manually.md#searchd-command-line-options) - Restricts the server to serve only the specified table
 * [--install](Starting_the_server/Manually.md#searchd-command-line-options) - Installs searchd as a service in Microsoft Management Console
 * [--iostats](Starting_the_server/Manually.md#searchd-command-line-options) - Enables input/output reporting
@@ -663,4 +664,3 @@ AND, AS, BY, COLUMNARSCAN, DISTINCT, DIV, DOCIDINDEX, EXPLAIN, FACET, FALSE, FOR
 * [14.1.0](https://manual.manticoresearch.com/manticore-14-1-0/). [Installation page](https://manticoresearch.com/install-14.1.0/)
 * [15.1.0](https://manual.manticoresearch.com/manticore-15-1-0/). [Installation page](https://manticoresearch.com/install-15.1.0/)
 <!-- proofread -->
-

+ 1 - 1
manual/english/Starting_the_server/Manually.md

@@ -16,6 +16,7 @@ The options available to `searchd` in all operating systems are:
 
 * `--help` (`-h` for short) lists all of the parameters that can be used in your particular build of `searchd`.
 * `--version` (`-v` for short) shows Manticore Search version information.
+* `--quiet` (`-q` for short) suppresses startup output except errors (banner and precache messages).
 * `--config <file>` (`-c <file>` for short) tells `searchd` to use the specified file as its configuration.
 * `--stop` is used to asynchronously stop `searchd`, using the details of the PID file as specified in the Manticore configuration file. Therefore, you may also need to confirm to `searchd` which configuration file to use with the `--config` option. Example:
 
@@ -181,4 +182,3 @@ Manticore utilizes the [plugin_dir](../Server_settings/Common.md#plugin_dir) for
 
 * `MANTICORE_TRACK_DAEMON_SHUTDOWN=1` enables detailed logging while searchd is shutting down. It's useful in case of some shutdown problems, such as when Manticore takes too long to shut down or freezes during the shutdown process.
 <!-- proofread -->
-

+ 24 - 24
manual/russian/References.md

@@ -512,35 +512,36 @@ index_converter {--config /path/to/config|--path}
 ```bash
 searchd [OPTIONS]
 ```
-* [--config, -c](Starting_the_server/Manually.md#searchd-command-line-options) - Указывает путь к файлу конфигурации
+* [--config, -c](Starting_the_server/Manually.md#searchd-command-line-options) - Задает путь к файлу конфигурации
 * [--console](Starting_the_server/Manually.md#searchd-command-line-options) - Принудительно запускает сервер в консольном режиме
-* [--coredump](Starting_the_server/Manually.md#searchd-command-line-options) - Включает сохранение core dump при сбое
-* [--cpustats](Starting_the_server/Manually.md#searchd-command-line-options) - Включает отчет о времени ЦПУ
-* [--delete](Starting_the_server/Manually.md#searchd-command-line-options) - Удаляет службу Manticore из Microsoft Management Console и других мест регистрации служб
-* [--force-preread](Starting_the_server/Manually.md#searchd-command-line-options) - Запрещает серверу обслуживать входящие подключения до предварительного чтения файлов таблиц
-* [--help, -h](Starting_the_server/Manually.md#searchd-command-line-options) - Показывает все доступные параметры
-* [--table (--index)](Starting_the_server/Manually.md#searchd-command-line-options) - Ограничивает работу сервера только указанной таблицей
-* [--install](Starting_the_server/Manually.md#searchd-command-line-options) - Устанавливает searchd как службу в Microsoft Management Console
-* [--iostats](Starting_the_server/Manually.md#searchd-command-line-options) - Включает отчетность по вводу/выводу
+* [--coredump](Starting_the_server/Manually.md#searchd-command-line-options) - Включает сохранение дампа памяти при аварийном завершении
+* [--cpustats](Starting_the_server/Manually.md#searchd-command-line-options) - Включает отчетность о времени процессора
+* [--delete](Starting_the_server/Manually.md#searchd-command-line-options) - Удаляет службу Manticore из консоли управления Microsoft и других мест, где регистрируются службы
+* [--force-preread](Starting_the_server/Manually.md#searchd-command-line-options) - Запрещает серверу обслуживать входящие соединения до предварительного чтения файлов таблиц
+* [--help, -h](Starting_the_server/Manually.md#searchd-command-line-options) - Отображает все доступные параметры
+* [--quiet, -q](Starting_the_server/Manually.md#searchd-command-line-options) - Выводить только ошибки при запуске
+* [--table (--index)](Starting_the_server/Manually.md#searchd-command-line-options) - Ограничивает сервер обслуживанием только указанной таблицы
+* [--install](Starting_the_server/Manually.md#searchd-command-line-options) - Устанавливает searchd как службу в консоли управления Microsoft
+* [--iostats](Starting_the_server/Manually.md#searchd-command-line-options) - Включает отчетность о вводе/выводе
 * [--listen, -l](Starting_the_server/Manually.md#searchd-command-line-options) - Переопределяет [listen](Server_settings/Searchd.md#listen) из файла конфигурации
-* [--logdebug, --logdebugv, --logdebugvv](Starting_the_server/Manually.md#searchd-command-line-options) - Включает дополнительный отладочный вывод в лог сервера
-* [--logreplication](Starting_the_server/Manually.md#searchd-command-line-options) - Включает дополнительный отладочный вывод репликации в лог сервера
-* [--new-cluster](Starting_the_server/Manually.md#searchd-command-line-options) - Инициализирует кластер репликации и устанавливает сервер как эталонный узел с защитой при [перезапуске кластера](Creating_a_cluster/Setting_up_replication/Restarting_a_cluster.md)
-* [--new-cluster-force](Starting_the_server/Manually.md#searchd-command-line-options) - Инициализирует кластер репликации и устанавливает сервер как эталонный узел, обходя защиту при [перезапуске кластера](Creating_a_cluster/Setting_up_replication/Restarting_a_cluster.md)
-* [--nodetach](Starting_the_server/Manually.md#searchd-command-line-options) - Не отделяет searchd и запускает его в первом плане
-* [--ntservice](Starting_the_server/Manually.md#searchd-command-line-options) - Используется Microsoft Management Console для запуска searchd как службы на Windows
-* [--pidfile](Starting_the_server/Manually.md#searchd-command-line-options) - Переопределяет [pid_file](Server_settings/Searchd.md#pid_file) из файла конфигурации
-* [--port, p](Starting_the_server/Manually.md#searchd-command-line-options) - Указывает порт, на котором searchd должен слушать, игнорируя порт из файла конфигурации
-* [--replay-flags](Starting_the_server/Manually.md#searchd-command-line-options) - Устанавливает дополнительные опции воспроизведения бинарного лога
-* [--servicename](Starting_the_server/Manually.md#searchd-command-line-options) - Присваивает указанное имя службе searchd при установке или удалении, отображаемое в Microsoft Management Console
-* [--status](Starting_the_server/Manually.md#searchd-command-line-options) - Запрашивает статус работающего поискового сервиса
+* [--logdebug, --logdebugv, --logdebugvv](Starting_the_server/Manually.md#searchd-command-line-options) - Включает дополнительный отладочный вывод в журнал сервера
+* [--logreplication](Starting_the_server/Manually.md#searchd-command-line-options) - Включает дополнительный отладочный вывод по репликации в журнал сервера
+* [--new-cluster](Starting_the_server/Manually.md#searchd-command-line-options) - Инициализирует кластер репликации и устанавливает сервер в качестве опорного узла с защитой от [перезапуска кластера](Creating_a_cluster/Setting_up_replication/Restarting_a_cluster.md)
+* [--new-cluster-force](Starting_the_server/Manually.md#searchd-command-line-options) - Инициализирует кластер репликации и устанавливает сервер в качестве опорного узла, обходя защиту от [перезапуска кластера](Creating_a_cluster/Setting_up_replication/Restarting_a_cluster.md)
+* [--nodetach](Starting_the_server/Manually.md#searchd-command-line-options) - Удерживает searchd работающим на переднем плане
+* [--ntservice](Starting_the_server/Manually.md#searchd-command-line-options) - Используется консолью управления Microsoft для запуска searchd как службы на платформах Windows
+* [--pidfile](Starting_the_server/Manually.md#searchd-command-line-options) - Переопределяет [pid_file](Server_settings/Searchd.md#pid_file) в файле конфигурации
+* [--port, p](Starting_the_server/Manually.md#searchd-command-line-options) - Задает порт, на котором должен слушать searchd, игнорируя порт, указанный в файле конфигурации
+* [--replay-flags](Starting_the_server/Manually.md#searchd-command-line-options) - Устанавливает дополнительные параметры воспроизведения бинарного лога
+* [--servicename](Starting_the_server/Manually.md#searchd-command-line-options) - Присваивает searchd заданное имя при установке или удалении службы, как оно отображается в консоли управления Microsoft
+* [--status](Starting_the_server/Manually.md#searchd-command-line-options) - Запрашивает статус у запущенной службы search
 * [--stop](Starting_the_server/Manually.md#searchd-command-line-options) - Останавливает сервер Manticore
-* [--stopwait](Starting_the_server/Manually.md#searchd-command-line-options) - Грациозно останавливает сервер Manticore
-* [--strip-path](Starting_the_server/Manually.md#searchd-command-line-options) - Удаляет пути из всех имен файлов, на которые ссылается таблица
+* [--stopwait](Starting_the_server/Manually.md#searchd-command-line-options) - Корректно останавливает сервер Manticore
+* [--strip-path](Starting_the_server/Manually.md#searchd-command-line-options) - Удаляет имена путей из всех имен файлов, на которые ссылается таблица
 * [-v](Starting_the_server/Manually.md#searchd-command-line-options) - Отображает информацию о версии
 
 ##### Переменные окружения searchd
-* [MANTICORE_TRACK_DAEMON_SHUTDOWN](Starting_the_server/Manually.md#Environment-variables) - Включает подробное логирование при завершении работы searchd
+* [MANTICORE_TRACK_DAEMON_SHUTDOWN](Starting_the_server/Manually.md#Environment-variables) - Включает подробное логирование во время завершения работы searchd
 
 ## [Indextool](Miscellaneous_tools.md#indextool)
 Различные функции обслуживания таблиц, полезные для устранения неполадок.
@@ -663,4 +664,3 @@ AND, AS, BY, COLUMNARSCAN, DISTINCT, DIV, DOCIDINDEX, EXPLAIN, FACET, FALSE, FOR
 * [14.1.0](https://manual.manticoresearch.com/manticore-14-1-0/). [Страница установки](https://manticoresearch.com/install-14.1.0/)
 * [15.1.0](https://manual.manticoresearch.com/manticore-15-1-0/). [Страница установки](https://manticoresearch.com/install-15.1.0/)
 <!-- proofread -->
-

+ 22 - 22
manual/russian/Starting_the_server/Manually.md

@@ -12,29 +12,30 @@ searchd [OPTIONS]
 ## Параметры командной строки searchd
 
 
-Параметры, доступные для `searchd` во всех операционных системах:
+Доступные для `searchd` во всех операционных системах параметры:
 
-* `--help` (сокращенно `-h`) выводит список всех параметров, которые можно использовать в вашей конкретной сборке `searchd`.
-* `--version` (сокращенно `-v`) показывает информацию о версии Manticore Search.
-* `--config <file>` (сокращенно `-c <file>`) указывает `searchd` использовать указанный файл в качестве конфигурации.
+* `--help` (сокращённо `-h`) выводит список всех параметров, которые могут быть использованы в вашей конкретной сборке `searchd`.
+* `--version` (сокращённо `-v`) показывает информацию о версии Manticore Search.
+* `--quiet` (сокращённо `-q`) подавляет вывод при запуске, кроме ошибок (баннер и сообщения о предварительном кэшировании).
+* `--config <file>` (сокращённо `-c <file>`) указывает `searchd` использовать указанный файл в качестве конфигурации.
 * `--stop` используется для асинхронной остановки `searchd`, используя данные PID-файла, указанного в конфигурационном файле Manticore. Поэтому вам также может потребоваться указать `searchd`, какой конфигурационный файл использовать, с помощью опции `--config`. Пример:
 
   ```bash
   $ searchd --config /etc/manticoresearch/manticore.conf --stop
   ```
 
-* `--stopwait` используется для синхронной остановки `searchd`. `--stop` по сути сообщает работающему экземпляру о выходе (отправляя ему SIGTERM) и затем немедленно возвращает управление. `--stopwait` также попытается дождаться, пока работающий экземпляр `searchd` фактически завершит процесс остановки (например, сохранит все ожидающие изменения атрибутов) и завершит работу. Пример:
+* `--stopwait` используется для синхронной остановки `searchd`. `--stop` по сути говорит запущенному экземпляру завершиться (отправляя ему SIGTERM) и затем немедленно возвращает управление. `--stopwait` также попытается дождаться, пока запущенный экземпляр `searchd` фактически завершит процесс остановки (например, сохранит все ожидающие изменения атрибутов) и завершится. Пример:
 
   ```bash
   $ searchd --config /etc/manticoresearch/manticore.conf --stopwait
   ```
-  Возможные коды завершения:
+  Возможные коды завершения следующие:
     * 0 при успехе
-    * 1 если не удалось подключиться к работающему серверу searchd
+    * 1 если не удалось подключиться к запущенному серверу searchd
     * 2 если сервер сообщил об ошибке во время остановки
-    * 3 если сервер аварийно завершил работу во время остановки
+    * 3 если сервер аварийно завершился во время остановки
 
-* Команда `--status` используется для запроса статуса работающего экземпляра `searchd`, используя данные подключения из (опционально) предоставленного конфигурационного файла. Она попытается подключиться к работающему экземпляру, используя первый найденный UNIX-сокет или TCP-порт из конфигурационного файла. При успехе она запросит ряд значений статуса и счетчиков производительности и выведет их. Вы также можете использовать команду [SHOW STATUS](../Node_info_and_management/Node_status.md#SHOW-STATUS) для доступа к тем же самым счетчикам через SQL-протокол. Примеры:
+* Команда `--status` используется для запроса статуса запущенного экземпляра `searchd`, используя данные подключения из (опционально) предоставленного конфигурационного файла. Она попытается подключиться к запущенному экземпляру, используя первый найденный UNIX-сокет или TCP-порт из конфигурационного файла. В случае успеха она запросит ряд значений статуса и счётчиков производительности и выведет их. Вы также можете использовать команду [SHOW STATUS](../Node_info_and_management/Node_status.md#SHOW-STATUS) для доступа к тем же самым счётчикам через SQL-протокол. Примеры:
 
   ```bash
   $ searchd --status
@@ -47,27 +48,27 @@ searchd [OPTIONS]
   $ searchd --console --pidfile
   ```
 
-* `--console` используется для принудительного перевода `searchd` в консольный режим. Обычно Manticore работает как обычное серверное приложение и записывает информацию в файлы журналов (как указано в конфигурационном файле). Однако при отладке проблем в конфигурации или самом сервере, или при попытке диагностировать трудноуловимые проблемы, может быть проще заставить его выводить информацию напрямую в консоль/командную строку, из которой он был вызван. Работа в консольном режиме также означает, что процесс не будет разветвляться (поэтому поиски выполняются последовательно) и журналы не будут записываться. (Следует отметить, что консольный режим не является предполагаемым методом для запуска `searchd`.) Вы можете вызвать его так:
+* `--console` используется для принудительного перевода `searchd` в консольный режим. Обычно Manticore работает как обычное серверное приложение и записывает информацию в файлы журналов (как указано в конфигурационном файле). Однако при отладке проблем в конфигурации или самом сервере, или при попытке диагностировать трудноуловимые проблемы, может быть проще заставить его выводить информацию напрямую в консоль/командную строку, из которой он был вызван. Запуск в консольном режиме также означает, что процесс не будет разветвляться (поэтому поиски выполняются последовательно) и журналы не будут записываться. (Следует отметить, что консольный режим не является предназначенным методом для запуска `searchd`.) Вы можете вызвать его так:
 
   ```bash
   $ searchd --config /etc/manticoresearch/manticore.conf --console
   ```
 
-* Опции `--logdebug`, `--logreplication`, `--logdebugv` и `--logdebugvv` включают дополнительный отладочный вывод в журнале сервера. Они различаются по уровню детализации журналирования. Это отладочные опции, и их обычно не следует включать, так как они могут сильно засорить журнал. Их можно временно использовать по запросу для помощи в сложных сессиях отладки.
+* Опции `--logdebug`, `--logreplication`, `--logdebugv` и `--logdebugvv` включают дополнительный отладочный вывод в журнал сервера. Они различаются по уровню детализации журналирования. Это отладочные опции, и их обычно не следует включать, так как они могут сильно засорить журнал. Их можно временно использовать по запросу для помощи в сложных сессиях отладки.
 
-* `--iostats` используется вместе с опциями журналирования (`query_log` должен быть активирован в `manticore.conf`) для предоставления более детальной информации по каждому запросу о операциях ввода/вывода, выполненных в ходе этого запроса, с небольшим падением производительности и немного большими журналами. Статистика IO не включает информацию об операциях IO для атрибутов, так как они загружаются с помощью mmap. Чтобы включить ее, вы можете запустить `searchd` следующим образом:
+* `--iostats` используется вместе с опциями журналирования (`query_log` должен быть активирован в `manticore.conf`) для предоставления более подробной информации по каждому запросу о операциях ввода/вывода, выполненных в ходе этого запроса, с небольшим снижением производительности и немного большими журналами. Статистика IO не включает информацию об операциях IO для атрибутов, так как они загружаются с помощью mmap. Чтобы включить её, вы можете запустить `searchd` следующим образом:
 
   ```bash
   $ searchd --config /etc/manticoresearch/manticore.conf --iostats
   ```
 
-* `--cpustats` используется для предоставления отчета о фактическом времени ЦП (в дополнение к реальному времени) как в файле журнала запросов (для каждого заданного запроса), так и в отчете о статусе (агрегированном). Это зависит от системного вызова Linux `clock_gettime()` или переходит к менее точному вызову на определенных системах. Вы можете запустить `searchd` так:
+* `--cpustats` используется для предоставления отчёта о фактическом времени процессора (в дополнение к реальному времени) как в файле журнала запросов (для каждого заданного запроса), так и в отчёте о статусе (агрегированном). Это зависит от системного вызова Linux `clock_gettime()` или переходит к менее точному вызову на определённых системах. Вы можете запустить `searchd` так:
 
   ```bash
   $ searchd --config /etc/manticoresearch/manticore.conf --cpustats
   ```
 
-* `--port portnumber` (сокращенно `-p`) используется для указания порта, который Manticore должен прослушивать для принятия запросов по бинарному протоколу, обычно для целей отладки. Обычно по умолчанию это 9312, но иногда вам нужно запустить его на другом порту. Указание его в командной строке переопределит все, указанное в конфигурационном файле. Допустимый диапазон от 0 до 65535, но порты с номерами 1024 и ниже обычно требуют привилегированной учетной записи для запуска.
+*  `--port portnumber` (сокращённо `-p`) используется для указания порта, который Manticore должен прослушивать для принятия запросов по бинарному протоколу, обычно для целей отладки. Обычно по умолчанию это 9312, но иногда вам нужно запустить его на другом порту. Указание его в командной строке переопределит всё, указанное в конфигурационном файле. Допустимый диапазон от 0 до 65535, но порты с номерами 1024 и ниже обычно требуют привилегированной учётной записи для запуска.
 
   Пример использования:
 
@@ -75,11 +76,11 @@ searchd [OPTIONS]
   $ searchd --port 9313
   ```
 
-* `--listen ( address ":" port | port | path ) [ ":" protocol ]` (или сокращенно `-l`) Работает как `--port`, но позволяет указать не только порт, но и полный путь, IP-адрес и порт, или путь к Unix-доменному сокету, который будет прослушивать `searchd`. Другими словами, вы можете указать либо IP-адрес (или имя хоста) и номер порта, либо просто номер порта, либо путь к Unix-сокету. Если вы укажете номер порта, но не адрес, searchd будет прослушивать все сетевые интерфейсы. Unix-путь идентифицируется начальным слэшем. В качестве последнего параметра вы также можете указать обработчик протокола (слушатель), который будет использоваться для соединений на этом сокете. Поддерживаемые значения протокола: 'sphinx' и 'mysql' (протокол MySQL, используемый с версии 4.1).
+* `--listen ( address ":" port | port | path ) [ ":" protocol ]` (или сокращённо `-l`) Работает как `--port`, но позволяет указать не только порт, но и полный путь, IP-адрес и порт, или путь к Unix-доменному сокету, который будет прослушивать `searchd`. Другими словами, вы можете указать либо IP-адрес (или имя хоста) и номер порта, либо просто номер порта, либо путь к Unix-сокету. Если вы укажете номер порта, но не адрес, searchd будет прослушивать все сетевые интерфейсы. Unix-путь идентифицируется начальным слэшем. В качестве последнего параметра вы также можете указать обработчик протокола (слушатель), который будет использоваться для соединений на этом сокете. Поддерживаемые значения протокола: 'sphinx' и 'mysql' (протокол MySQL, используемый с версии 4.1).
 
-* `--force-preread` запрещает серверу обслуживать любые входящие соединения до завершения предварительного чтения файлов таблиц. По умолчанию при запуске сервер принимает соединения, пока файлы таблиц лениво загружаются в память. Эта опция расширяет поведение и заставляет сервер ждать, пока файлы не будут загружены.
+* `--force-preread` запрещает серверу обслуживать любые входящие соединения до завершения предварительного чтения файлов таблиц. По умолчанию при запуске сервер принимает соединения, пока файлы таблиц лениво загружаются в память. Эта опция расширяет поведение и заставляет его ждать, пока файлы не будут загружены.
 
-* `--index (--table) <table>` (или сокращенно `-i (-t) <table>`) заставляет этот экземпляр `searchd` обслуживать только указанную таблицу. Как и `--port` выше, это обычно для целей отладки; более долгосрочные изменения обычно вносятся в сам конфигурационный файл.
+* `--index (--table) <table>` (или сокращённо `-i (-t) <table>`) заставляет этот экземпляр `searchd` обслуживать только указанную таблицу. Как и `--port` выше, это обычно для целей отладки; более долгосрочные изменения обычно следует вносить в сам конфигурационный файл.
 
 * `--strip-path` удаляет пути из всех имен файлов, на которые ссылается таблица (стоп-слова, формы слов, исключения и т.д.). Это полезно для использования таблиц, созданных на другой машине с возможными отличиями в расположении путей.
 
@@ -173,12 +174,11 @@ Manticore использует [plugin_dir](../Server_settings/Common.md#plugin_
 
 `searchd` поддерживает несколько сигналов:
 
-* `SIGTERM` - Инициирует корректное завершение работы. Новые запросы не будут обрабатываться, но запросы, которые уже начали выполняться, не будут прерваны принудительно.
-* `SIGHUP` - Инициирует ротацию таблиц. В зависимости от значения параметра [seamless_rotate](../Server_settings/Searchd.md#seamless_rotate), новые запросы могут быть на короткое время приостановлены; клиенты получат временные ошибки.
-* `SIGUSR1` - Принудительно перестраивает файлы журнала searchd и журнала запросов, что позволяет выполнить ротацию журналов.
+* `SIGTERM` - Инициирует корректное завершение работы. Новые запросы не будут обрабатываться, но уже начатые запросы не будут принудительно прерваны.
+* `SIGHUP` - Инициирует ротацию таблиц. В зависимости от значения настройки [seamless_rotate](../Server_settings/Searchd.md#seamless_rotate), новые запросы могут быть ненадолго приостановлены; клиенты будут получать временные ошибки.
+* `SIGUSR1` - Принудительно переоткрывает файлы журнала searchd и журнала запросов, что позволяет выполнить ротацию файлов журналов.
 
 ## Переменные окружения
 
-* `MANTICORE_TRACK_DAEMON_SHUTDOWN=1` включает подробное логирование во время завершения работы searchd. Это полезно в случае проблем с завершением работы, например, когда Manticore слишком долго завершает работу или зависает в процессе завершения.
+* `MANTICORE_TRACK_DAEMON_SHUTDOWN=1` включает подробное логирование во время завершения работы searchd. Это полезно в случае некоторых проблем с завершением работы, например, когда Manticore слишком долго завершает работу или зависает в процессе завершения.
 <!-- proofread -->
-

+ 40 - 8
src/searchd.cpp

@@ -174,6 +174,7 @@ bool					g_bIOStats		= false;
 static auto&			g_bCpuStats 	= sphGetbCpuStat ();
 static bool				g_bOptNoDetach	= false; // whether to detach from console, or work in front
 static bool				g_bOptNoLock	= false; // whether to lock indexes (with .spl) or not
+static bool				g_bOptQuiet		= false; // suppress startup output except errors
 static bool				g_bStripPath	= false;
 
 static auto& g_bGotSighup		= sphGetGotSighup();	// we just received SIGHUP; need to log
@@ -13336,6 +13337,7 @@ void ShowHelp ()
 		"Options are:\n"
 		"-h, --help\t\tdisplay this help message\n"
 		"-v, --version\t\tdisplay version information\n"
+		"-q, --quiet\t\tonly print errors on startup\n"
 		"-c, --config <file>\tread configuration from specified file\n"
 		"\t\t\t(default is manticore.conf)\n"
 		"--stop\t\t\tsend SIGTERM to currently running searchd\n"
@@ -13384,6 +13386,15 @@ void ShowHelp ()
 		);
 }
 
+static bool HasQuietFlag ( int argc, char ** argv )
+{
+	for ( int i = 1; i < argc; ++i )
+		if ( !strcmp ( argv[i], "-q" ) || !strcmp ( argv[i], "--quiet" ) )
+			return true;
+
+	return false;
+}
+
 
 void InitSharedBuffer ()
 {
@@ -14210,8 +14221,11 @@ ESphAddIndex ConfigureAndPreloadIndex ( const CSphConfigSection & hIndex, const
 	case ADD_NEEDLOAD:
 	{
 		assert ( pJustLoadedLocal );
-		fprintf ( stdout, "precaching table '%s'\n", szIndexName );
-		fflush ( stdout );
+		if ( !g_bOptQuiet )
+		{
+			fprintf ( stdout, "precaching table '%s'\n", szIndexName );
+			fflush ( stdout );
+		}
 
 		IndexFiles_c dJustAddedFiles ( pJustLoadedLocal->m_sIndexPath );
 
@@ -14323,7 +14337,8 @@ static void ConfigureAndPreloadOnStartup ( const CSphConfig & hConf, const StrVe
 	if ( !iValidIndexes )
 		sphLogDebug ( "no valid tables to serve" );
 	else
-		fprintf ( stdout, "precached %d tables in %0.3f sec\n", iCounter, float(tmLoad)/1000000 );
+		if ( !g_bOptQuiet )
+			fprintf ( stdout, "precached %d tables in %0.3f sec\n", iCounter, float(tmLoad)/1000000 );
 }
 
 // if data_dir changes cwd then paths at sections searchd and common should be fixed from realtive into absolute
@@ -14544,7 +14559,12 @@ int WINAPI ServiceMain ( int argc, char **argv ) EXCLUDES (MainThread)
 
 	InitBanner();
 
-	if ( !WinService() )
+	g_bOptQuiet = HasQuietFlag ( argc, argv );
+	ESphLogLevel eQuietRestoreLevel = g_eLogLevel;
+	if ( g_bOptQuiet )
+		g_eLogLevel = SPH_LOG_FATAL;
+
+	if ( !WinService() && !g_bOptQuiet )
 		fprintf ( stdout, "%s",  g_sBanner.cstr() );
 
 	if ( bColumnarError )
@@ -14599,6 +14619,14 @@ int WINAPI ServiceMain ( int argc, char **argv ) EXCLUDES (MainThread)
 	#define OPT(_a1,_a2)	else if ( !strcmp(argv[i],_a1) || !strcmp(argv[i],_a2) )
 	#define OPT1(_a1)		else if ( !strcmp(argv[i],_a1) )
 
+	auto UpdateLogLevel = [&eQuietRestoreLevel] ( ESphLogLevel eLevel )
+	{
+		if ( g_bOptQuiet )
+			eQuietRestoreLevel = Max ( eQuietRestoreLevel, eLevel );
+		else
+			g_eLogLevel = Max ( g_eLogLevel, eLevel );
+	};
+
 	int i;
 	for ( i=1; i<argc; i++ )
 	{
@@ -14609,6 +14637,7 @@ int WINAPI ServiceMain ( int argc, char **argv ) EXCLUDES (MainThread)
 		OPT ( "-h", "--help" )		{ ShowHelp(); return 0; }
 		OPT ( "-?", "--?" )		{ ShowHelp(); return 0; }
 		OPT ( "-v", "--version" )	{ return 0; }
+		OPT ( "-q", "--quiet" )		g_bOptQuiet = true;
 		OPT1 ( "--console" )		{ g_bOptNoLock = true; g_bOptNoDetach = true; bTestMode = true; }
 		OPT1 ( "--stop" )			bOptStop = true;
 		OPT1 ( "--stopwait" )		{ bOptStop = true; bOptStopWait = true; }
@@ -14624,10 +14653,10 @@ int WINAPI ServiceMain ( int argc, char **argv ) EXCLUDES (MainThread)
 #else
 		OPT1 ( "--nodetach" )		g_bOptNoDetach = true;
 #endif
-		OPT1 ( "--logdebug" )		g_eLogLevel = Max ( g_eLogLevel, SPH_LOG_DEBUG );
-		OPT1 ( "--logdebugv" )		g_eLogLevel = Max ( g_eLogLevel, SPH_LOG_VERBOSE_DEBUG );
-		OPT1 ( "--logdebugvv" )		g_eLogLevel = Max ( g_eLogLevel, SPH_LOG_VERY_VERBOSE_DEBUG );
-		OPT1 ( "--logreplication" )	g_eLogLevel = Max ( g_eLogLevel, SPH_LOG_RPL_DEBUG );
+		OPT1 ( "--logdebug" )		UpdateLogLevel ( SPH_LOG_DEBUG );
+		OPT1 ( "--logdebugv" )		UpdateLogLevel ( SPH_LOG_VERBOSE_DEBUG );
+		OPT1 ( "--logdebugvv" )		UpdateLogLevel ( SPH_LOG_VERY_VERBOSE_DEBUG );
+		OPT1 ( "--logreplication" )	UpdateLogLevel ( SPH_LOG_RPL_DEBUG );
 		OPT1 ( "--safetrace" )		CrashLogger::SetSafeTrace ( true );
 		OPT1 ( "--test" )			{ g_bWatchdog = false; bTestMode = true; } // internal option, do NOT document
 		OPT1 ( "--force-pseudo-sharding" ) { bForcePseudoSharding = true; } // internal option, do NOT document
@@ -15217,6 +15246,9 @@ int WINAPI ServiceMain ( int argc, char **argv ) EXCLUDES (MainThread)
 	if ( !g_bOptNoDetach )
 		StopLogStdout();
 
+	if ( g_bOptQuiet )
+		g_eLogLevel = eQuietRestoreLevel;
+
 	while (true)
 	{
 		CrashLogger::SetupTimePID();

Some files were not shown because too many files changed in this diff