NSSM(Non-Sucking Service Manager)是一个开源的 Windows 服务管理工具,它可以帮助用户将任何可执行程序转换为一个 Windows 服务。下面是 NSSM 的初级使用教程大纲,包括基本命令和使用方式:
NSSM(Non-Sucking Service Manager)是一个广泛使用的 Windows 服务管理工具,它允许你将任何应用程序或脚本作为 Windows 服务运行,并且能够有效地管理这些服务。NSSM 提供了一个简单的命令行界面,用于创建、配置和管理服务。以下是 NSSM 的常用命令按功能分类整理的表格。
NSSM 命令功能分类(表格化)
| 功能分类 | NSSM 命令 | 功能描述 | 操作示例 |
|---|---|---|---|
| 安装服务 | nssm install <ServiceName> |
安装一个应用程序作为 Windows 服务。 | nssm install MyService "C:\Path\To\MyApp.exe" |
| 卸载服务 | nssm remove <ServiceName> |
卸载指定的服务并删除相关配置。 | nssm remove MyService |
| 配置服务 | nssm set <ServiceName> <Option> <Value> |
设置指定服务的配置选项,如重定向输出、设置环境变量等。 | nssm set MyService AppStdout "C:\Path\To\stdout.log" <br> nssm set MyService AppStderr "C:\Path\To\stderr.log" |
| 查看服务配置 | nssm dump <ServiceName> |
显示指定服务的配置和当前状态。 | nssm dump MyService |
| 启动服务 | nssm start <ServiceName> |
启动指定的服务。 | nssm start MyService |
| 停止服务 | nssm stop <ServiceName> |
停止指定的服务。 | nssm stop MyService |
| 重启服务 | nssm restart <ServiceName> |
重启指定的服务。 | nssm restart MyService |
| 查看服务状态 | nssm status <ServiceName> |
查看指定服务的状态。 | nssm status MyService |
| 更改服务启动类型 | nssm set <ServiceName> AppNoConsole |
配置服务是否在没有控制台的情况下运行。 | nssm set MyService AppNoConsole 1 |
| 设置服务的依赖关系 | nssm set <ServiceName> AppDepends |
设置服务的依赖关系,指定哪些服务必须先启动。 | nssm set MyService AppDepends "DependencyService" |
| 设置服务的启动参数 | nssm set <ServiceName> AppParameters |
设置服务的启动命令行参数。 | nssm set MyService AppParameters "--arg1 --arg2" |
| 设置服务的工作目录 | nssm set <ServiceName> AppDirectory |
设置服务的工作目录。 | nssm set MyService AppDirectory "C:\Path\To\Directory" |
| 设置服务的运行账户 | nssm set <ServiceName> AppUsername |
配置服务的运行帐户(如 LocalSystem、NetworkService 或特定用户)。 | nssm set MyService AppUsername "NT AUTHORITY\LocalService" |
| 设置服务的环境变量 | nssm set <ServiceName> AppEnv |
配置服务的环境变量。 | nssm set MyService AppEnv "MY_VAR=VALUE" |
| 设置服务的启动延迟 | nssm set <ServiceName> AppStartDelay |
配置服务启动的延迟时间(单位:秒)。 | nssm set MyService AppStartDelay 10 |
| 设置服务重启策略 | nssm set <ServiceName> AppExit |
配置服务退出后如何处理(如重启、退出等)。 | nssm set MyService AppExit Restart |
| 设置服务的日志输出 | nssm set <ServiceName> AppStdout<br> nssm set <ServiceName> AppStderr |
配置服务的标准输出和标准错误输出的文件路径。 | nssm set MyService AppStdout "C:\Path\To\stdout.log" <br> nssm set MyService AppStderr "C:\Path\To\stderr.log" |
| 启用服务的自动重启 | nssm set <ServiceName> AppRestarts |
配置服务在失败后的自动重启次数。 | nssm set MyService AppRestarts 5 |
| 修改服务的启动类型 | nssm set <ServiceName> AppStartType |
设置服务的启动类型(如手动启动、自动启动等)。 | nssm set MyService AppStartType "Automatic" |
| 修改服务的恢复选项 | nssm set <ServiceName> AppRecovery |
配置服务失败后的恢复选项。 | nssm set MyService AppRecovery 1 |
详细说明
-
安装服务:
- 使用
nssm install <ServiceName>来安装一个应用程序作为 Windows 服务。该命令会将应用程序作为服务注册到系统,并启动它。 - 示例:
nssm install MyService "C:\Path\To\MyApp.exe"
- 使用
-
卸载服务:
nssm remove <ServiceName>用于卸载一个已注册的服务并删除其配置。- 示例:
nssm remove MyService
-
配置服务:
- 使用
nssm set配置服务的各种属性,如设置输出日志文件、运行目录、环境变量、依赖关系等。 - 示例:
nssm set MyService AppStdout "C:\Logs\stdout.log"
- 使用
-
查看服务配置:
nssm dump <ServiceName>用于查看服务的当前配置和状态。- 示例:
nssm dump MyService
-
启动、停止、重启服务:
nssm start、nssm stop、nssm restart用于控制服务的启动、停止和重启。- 示例:
nssm start MyService、nssm stop MyService、nssm restart MyService
-
查看服务状态:
nssm status用于查看服务的当前状态(如是否正在运行)。- 示例:
nssm status MyService
-
设置服务的依赖关系:
nssm set <ServiceName> AppDepends可以设置服务的依赖关系,指定哪些服务必须先启动。- 示例:
nssm set MyService AppDepends "DependencyService"
-
设置服务的启动参数、工作目录、环境变量等:
nssm set还可以设置服务的启动参数、工作目录、环境变量等,这些配置可以在服务启动时生效。- 示例:
nssm set MyService AppParameters "--arg1 --arg2"<br>nssm set MyService AppDirectory "C:\Path\To\Directory"
-
设置服务的重启和恢复策略:
nssm set可以配置服务失败后的恢复行为,如重启服务或设置重启次数。- 示例:
nssm set MyService AppExit Restart<br>nssm set MyService AppRestarts 5
小结
NSSM 提供了丰富的命令来管理 Windows 服务,从安装、配置、查看到控制服务状态,都能通过简单的命令实现。通过这些功能,NSSM 使得将任何应用程序转换为 Windows 服务变得更加容易,同时提供了细粒度的控制选项来优化服务的表现和可靠性。


用法:nssm <选项>[<参数>.]
显示服务安装界面:
nssm install[<服务名称>]
安装一个服务无需确认:
nssm install<服务名称><软件可执行路径>[<参数>..]
显示服务编辑界面:
nssmedit<服务名称>
直接检索或编辑服务参数:
nssm dump<服务名称>
nssm get<服务名称><参数>[<子参数>]
nssm set<服务名称><参数>[<子参数>]<值>
nssm reset<服务名称><参数>[<子参数>]
显示服务删除界面:
nssm remove[≤服务名称>]
删除一个服务无需确认:
nssm remove<服务名称>confirm
管理一个服务:
nssm start<服务名称>
nssm stop<服务名称>
nssm restart<服务名称>
nssm status<服务名称>
nssm statuscode<服务名称>
nssm rotate<服务名称>
nssm processes<服务名称>
nssm(Non-Sucking Service Manager)命令的详细信息,包括命令、描述、应用场景和示例:
| 命令 | 描述 | 应用场景 | 示例 |
|---|---|---|---|
nssm <选项>[<参数>] |
显示 nssm 的帮助和可用选项。 |
用于查看 nssm 的所有功能和用法。 |
nssm |
nssm install [<服务名称>] |
显示服务安装界面。 | 用于安装新的服务并配置其参数。 | nssm install MyService |
nssm install <服务名称> <软件可执行路径> [<参数>] |
安装一个服务,无需确认。 | 快速安装服务,适用于自动化脚本。 | nssm install MyService "C:\Path\To\App.exe" |
nssm edit <服务名称> |
显示服务编辑界面。 | 用于修改已安装服务的配置。 | nssm edit MyService |
nssm dump <服务名称> |
直接检索或编辑服务参数。 | 用于查看服务的当前配置和状态。 | nssm dump MyService |
nssm get <服务名称> <参数> [<子参数>] |
获取服务的特定参数值。 | 用于查询服务的配置参数。 | nssm get MyService AppPath |
nssm set <服务名称> <参数> [<子参数>] <值> |
设置服务的特定参数值。 | 用于修改服务的配置参数。 | nssm set MyService AppPath "C:\NewPath\To\App.exe" |
nssm reset <服务名称> <参数> [<子参数>] |
重置服务的特定参数。 | 用于恢复服务的默认配置。 | nssm reset MyService AppPath |
nssm remove [<服务名称>] |
显示服务删除界面。 | 用于删除已安装的服务。 | nssm remove MyService |
nssm remove <服务名称> confirm |
删除一个服务,无需确认。 | 快速删除服务,适用于自动化脚本。 | nssm remove MyService confirm |
nssm start <服务名称> |
启动指定的服务。 | 用于手动或自动启动服务。 | nssm start MyService |
nssm stop <服务名称> |
停止指定的服务。 | 用于手动或自动停止服务。 | nssm stop MyService |
nssm restart <服务名称> |
重启指定的服务。 | 用于在服务出现问题时快速重启服务。 | nssm restart MyService |
nssm status <服务名称> |
显示指定服务的状态。 | 用于检查服务的当前运行状态。 | nssm status MyService |
nssm statuscode <服务名称> |
显示指定服务的状态代码。 | 用于获取服务的退出状态代码。 | nssm statuscode MyService |
nssm rotate <服务名称> |
轮换服务的日志文件。 | 用于管理服务的日志文件,确保日志不会无限增长。 | nssm rotate MyService |
nssm processes <服务名称> |
显示与指定服务关联的进程。 | 用于监控服务的运行进程,确保其正常工作。 | nssm processes MyService |
nssm 是一个强大的工具,适用于在 Windows 系统中管理服务。它提供了丰富的功能,使得服务的安装、配置、启动、停止和监控变得更加简单和高效。通过使用 nssm,管理员可以更灵活地管理服务,确保系统的稳定性和性能。
NSSM(Non-Sucking Service Manager)是一个开源的 Windows 服务管理工具,它可以帮助用户将任何可执行程序转换为一个 Windows 服务。下面是 NSSM 的初级应用大纲,包括基本命令和使用方式:
1. 安装 NSSM
- 下载 NSSM 的最新版本安装包。
- 解压安装包,并将 nssm.exe 复制到一个方便访问的路径,如
C:\nssm\。
2. 创建和管理服务
创建新服务
- 打开命令提示符 (cmd.exe) 或 PowerShell。
- 使用
nssm install <ServiceName>命令来创建一个新的服务。- 示例:
nssm install MyServiceName
- 示例:
- 弹出一个图形界面,可以设置服务的详细信息,如路径、启动参数、工作目录等,也可以在命令行中直接配置。
删除服务
- 使用
nssm remove <ServiceName>命令来删除一个已存在的服务。- 示例:
nssm remove MyServiceName
- 示例:
3. 配置服务
设置服务的可执行程序
- 在 NSSM 的配置界面或命令行中指定要作为服务运行的可执行文件的路径。
- 示例:
nssm set MyServiceName ApplicationPath "C:\path\to\executable.exe"
- 示例:
设置服务的启动参数和工作目录
- 使用
nssm set <ServiceName>命令来配置服务的启动参数和工作目录。- 示例:
nssm set MyServiceName AppParameters "-param1 value1" - 示例:
nssm set MyServiceName AppDirectory "C:\path\to\working\directory"
- 示例:
配置服务的启动类型和用户权限
- 使用
nssm set <ServiceName>命令来设置服务的启动类型(自动、手动、禁用)和登录账号。- 示例:
nssm set MyServiceName Start SERVICE_AUTO_START - 示例:
nssm set MyServiceName ObjectName "LocalSystem"
- 示例:
4. 启动和停止服务
- 使用
nssm start <ServiceName>命令来启动服务。- 示例:
nssm start MyServiceName
- 示例:
- 使用
nssm stop <ServiceName>命令来停止服务。- 示例:
nssm stop MyServiceName
- 示例:
5. 查看和调试服务
- 使用
nssm status <ServiceName>命令来查看服务的当前状态。- 示例:
nssm status MyServiceName
- 示例:
- 使用
nssm restart <ServiceName>命令来重新启动服务。- 示例:
nssm restart MyServiceName
- 示例:
6. 日志和错误处理
- NSSM 会生成日志文件以记录服务的运行状态和错误信息,通常位于服务安装目录下的
nssm.log文件中。可用于排查服务启动或运行时的问题。
注意事项
- 确保以管理员身份运行命令提示符或 PowerShell。
- 在使用 NSSM 创建服务时,务必详细阅读和理解 NSSM 提供的各个配置选项,特别是路径、权限、启动类型等设置,以确保服务能够按预期运行。
以上是 NSSM 初级应用的基本大纲和命令示例,希望能够帮助您理解如何使用 NSSM 管理 Windows 服务。
NSSM 中级应用大纲
NSSM(Non-Sucking Service Manager)提供了丰富的功能和选项,用于更高级的 Windows 服务管理和配置。以下是 NSSM 中级应用的大纲,涵盖了更复杂和深入的任务和配置:
1. 安全和权限设置
设置服务的登录账号和权限
- 使用
nssm set <ServiceName> ObjectName "<AccountName>"命令来指定服务运行时的登录账号。- 示例:
nssm set MyServiceName ObjectName "DOMAIN\User"
- 示例:
配置服务的安全选项
- 使用
nssm set <ServiceName> AppAllowServiceLogon和nssm set <ServiceName> AppDisallowInteractiveLogon命令来配置服务的允许服务登录和禁止交互登录选项。
2. 高级启动选项
启动和恢复选项
- 使用
nssm set <ServiceName> Start SERVICE_*命令来设置服务的启动类型,如自动启动、手动启动或禁用。- 示例:
nssm set MyServiceName Start SERVICE_AUTO_START
- 示例:
设置服务启动和失败时的操作
- 使用
nssm set <ServiceName> AppRestartDelay <Seconds>和nssm set <ServiceName> AppFailureActions <ResetPeriod> <RebootMsg>命令来配置服务的重启延迟和失败操作选项。
3. 进程控制和监控
监控和重启服务进程
- 使用
nssm set <ServiceName> AppRotateFiles命令来设置在达到文件大小限制时轮转日志文件。- 示例:
nssm set MyServiceName AppRotateFiles <FileSize> <FileCount>
- 示例:
控制服务进程优先级
- 使用
nssm set <ServiceName> AppPriority <Priority>命令来设置服务进程的优先级。- 示例:
nssm set MyServiceName AppPriority HIGH
- 示例:
4. 故障排除和日志记录
配置详细日志记录
- 使用
nssm set <ServiceName> AppStdout <LogFilePath>和nssm set <ServiceName> AppStderr <LogFilePath>命令来设置服务的标准输出和错误输出的日志文件路径。
查看服务状态和日志
- 使用
nssm status <ServiceName>命令来查看服务的当前状态和运行日志,以便快速诊断和故障排除。
5. 扩展和自定义选项
利用 NSSM 的扩展功能
- NSSM 支持使用插件和扩展来增强其功能,可以根据需求进行定制和配置。
这些是 NSSM 中级应用的主要大纲和命令示例,希望能帮助您更深入地理解和使用 NSSM 进行复杂的 Windows 服务管理和配置。
NSSM 进行高级应用时,可以探索一些更复杂和深入的功能和配置选项。以下是 NSSM 高级应用的大纲和命令示例:
1. 安全和权限设置
1.1 设置服务的登录账号和权限
nssm set <ServiceName> ObjectName "<AccountName>"
示例:
nssm set MyServiceName ObjectName "DOMAIN\User"
1.2 配置服务的安全选项
nssm set <ServiceName> AppAllowServiceLogon
nssm set <ServiceName> AppDisallowInteractiveLogon
2. 高级启动选项
2.1 启动和恢复选项
nssm set <ServiceName> Start SERVICE_*
示例:
nssm set MyServiceName Start SERVICE_AUTO_START
2.2 设置服务启动和失败时的操作
nssm set <ServiceName> AppRestartDelay <Seconds>
nssm set <ServiceName> AppFailureActions <ResetPeriod> <RebootMsg>
3. 进程控制和监控
3.1 监控和重启服务进程
nssm set <ServiceName> AppRotateFiles <FileSize> <FileCount>
示例:
nssm set MyServiceName AppRotateFiles 1024 5
3.2 控制服务进程优先级
nssm set <ServiceName> AppPriority <Priority>
示例:
nssm set MyServiceName AppPriority HIGH
4. 故障排除和日志记录
4.1 配置详细日志记录
nssm set <ServiceName> AppStdout <LogFilePath>
nssm set <ServiceName> AppStderr <LogFilePath>
示例:
nssm set MyServiceName AppStdout C:\Logs\stdout.log
nssm set MyServiceName AppStderr C:\Logs\stderr.log
4.2 查看服务状态和日志
nssm status <ServiceName>
5. 扩展和自定义选项
5.1 利用 NSSM 的扩展功能
NSSM 支持使用插件和扩展来增强其功能,可以根据需求进行定制和配置。
这些命令和示例展示了如何使用 NSSM 进行更高级的服务管理和配置。每个命令都有其具体的参数和用法,可以根据实际需求进行调整和应用。
NSSM 的专家级应用,可以深入探索更复杂和高级的功能和配置选项。以下是 NSSM 专家级应用的大纲和命令示例:
1. 进程控制和监控
1.1 控制服务进程的优先级和亲和性
nssm set <ServiceName> AppPriority <Priority>
nssm set <ServiceName> AppAffinity <AffinityMask>
示例:
nssm set MyServiceName AppPriority HIGH
nssm set MyServiceName AppAffinity 0x1 ; 使用第一个 CPU 核心
1.2 设置服务的进程 CPU 和内存限制
nssm set <ServiceName> AppCPUTimeLimit <Seconds>
nssm set <ServiceName> AppMemoryLimit <Bytes>
示例:
nssm set MyServiceName AppCPUTimeLimit 3600 ; 限制服务运行的 CPU 时间为 3600 秒
nssm set MyServiceName AppMemoryLimit 536870912 ; 限制服务占用的内存为 512 MB
2. 高级日志和调试选项
2.1 配置详细的调试日志
nssm set <ServiceName> AppEnvironmentAppend <VariableName>=<Value>
nssm set <ServiceName> AppStopMethodSkip <Method>
示例:
nssm set MyServiceName AppEnvironmentAppend DEBUG=1 ; 设置环境变量以启用调试模式
nssm set MyServiceName AppStopMethodSkip 5 ; 忽略停止方法 5 的调用,用于特定的停止场景处理
3. 多实例和负载均衡配置
3.1 配置多实例和服务互斥
nssm set <ServiceName> AppInstances <Number>
nssm set <ServiceName> AppMutex <MutexName>
示例:
nssm set MyServiceName AppInstances 5 ; 设置服务的最大实例数为 5
nssm set MyServiceName AppMutex MyServiceMutex ; 指定服务的互斥对象名称
4. 高级安全和权限设置
4.1 配置服务的安全描述符和权限
nssm set <ServiceName> AppSecurityDescriptor <DescriptorString>
nssm set <ServiceName> AppServiceSidType <SidType>
示例:
nssm set MyServiceName AppSecurityDescriptor "D:(A;;GA;;;S-1-5-32-544)(A;;GA;;;BA)(A;;GRGWGX;;;WD)"
nssm set MyServiceName AppServiceSidType Unrestricted ; 设置服务的安全标识类型为无限制
5. 扩展和自定义选项
5.1 使用 NSSM 插件和扩展
NSSM 支持使用第三方插件和自定义扩展,以增强服务的功能和定制选项。
这些命令和示例展示了如何在 NSSM 中进行专家级的服务管理和配置,涵盖了更复杂的需求和高级的操作。根据实际情况,可以灵活调整和应用这些功能,以满足特定的服务部署和管理要求。
NSSM(Non-Sucking Service Manager)进行顶尖级应用时,可以探索一些高级的功能和配置选项,以实现更灵活和强大的服务管理。以下是 NSSM 的顶尖级应用大纲,涵盖了高级功能和相关命令示例:
1. 进程控制和监控
1.1 控制服务进程的优先级和亲和性
nssm set <ServiceName> AppPriority <Priority>
nssm set <ServiceName> AppAffinity <AffinityMask>
示例:
nssm set MyServiceName AppPriority HIGH
nssm set MyServiceName AppAffinity 0x1 ; 将服务限制在第一个 CPU 核心上
1.2 设置服务的进程 CPU 和内存限制
nssm set <ServiceName> AppCPUTimeLimit <Seconds>
nssm set <ServiceName> AppMemoryLimit <Bytes>
示例:
nssm set MyServiceName AppCPUTimeLimit 3600 ; 限制服务运行的 CPU 时间为 3600 秒
nssm set MyServiceName AppMemoryLimit 536870912 ; 限制服务占用的内存为 512 MB
2. 高级日志和调试选项
2.1 配置详细的调试日志
nssm set <ServiceName> AppStdout <LogFile>
nssm set <ServiceName> AppStderr <LogFile>
示例:
nssm set MyServiceName AppStdout C:\Logs\MyService_stdout.log ; 将标准输出重定向到指定文件
nssm set MyServiceName AppStderr C:\Logs\MyService_stderr.log ; 将标准错误输出重定向到指定文件
3. 高级安全和权限设置
3.1 配置服务的安全描述符和权限
nssm set <ServiceName> AppSecurityDescriptor <DescriptorString>
nssm set <ServiceName> AppRotateFiles <True/False>
示例:
nssm set MyServiceName AppSecurityDescriptor "D:(A;;GA;;;S-1-5-32-544)(A;;GA;;;BA)(A;;GRGWGX;;;WD)" ; 配置服务的安全描述符
nssm set MyServiceName AppRotateFiles true ; 启用日志文件轮换功能
4. 多实例和负载均衡配置
4.1 配置多实例和服务互斥
nssm set <ServiceName> AppInstances <Number>
nssm set <ServiceName> AppMutex <MutexName>
示例:
nssm set MyServiceName AppInstances 5 ; 设置服务的最大实例数为 5
nssm set MyServiceName AppMutex MyServiceMutex ; 指定服务的互斥对象名称
5. 扩展和自定义选项
5.1 使用 NSSM 插件和扩展
NSSM 支持使用第三方插件和自定义扩展,以增强服务的功能和定制选项。
这些命令和示例展示了如何在 NSSM 中利用顶尖级的功能进行服务管理和配置,适用于需要高度灵活性和可配置性的场景。根据具体需求,可以深入探索和调整这些选项,以实现最佳的服务部署和管理效果。

浙公网安备 33010602011771号