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

详细说明

  1. 安装服务

    • 使用 nssm install <ServiceName> 来安装一个应用程序作为 Windows 服务。该命令会将应用程序作为服务注册到系统,并启动它。
    • 示例:nssm install MyService "C:\Path\To\MyApp.exe"
  2. 卸载服务

    • nssm remove <ServiceName> 用于卸载一个已注册的服务并删除其配置。
    • 示例:nssm remove MyService
  3. 配置服务

    • 使用 nssm set 配置服务的各种属性,如设置输出日志文件、运行目录、环境变量、依赖关系等。
    • 示例:nssm set MyService AppStdout "C:\Logs\stdout.log"
  4. 查看服务配置

    • nssm dump <ServiceName> 用于查看服务的当前配置和状态。
    • 示例:nssm dump MyService
  5. 启动、停止、重启服务

    • nssm startnssm stopnssm restart 用于控制服务的启动、停止和重启。
    • 示例:nssm start MyServicenssm stop MyServicenssm restart MyService
  6. 查看服务状态

    • nssm status 用于查看服务的当前状态(如是否正在运行)。
    • 示例:nssm status MyService
  7. 设置服务的依赖关系

    • nssm set <ServiceName> AppDepends 可以设置服务的依赖关系,指定哪些服务必须先启动。
    • 示例:nssm set MyService AppDepends "DependencyService"
  8. 设置服务的启动参数、工作目录、环境变量等

    • nssm set 还可以设置服务的启动参数、工作目录、环境变量等,这些配置可以在服务启动时生效。
    • 示例:nssm set MyService AppParameters "--arg1 --arg2" <br> nssm set MyService AppDirectory "C:\Path\To\Directory"
  9. 设置服务的重启和恢复策略

    • 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 设置服务的登录账号和权限

plaintextCopy Code
nssm set <ServiceName> ObjectName "<AccountName>"

示例:

plaintextCopy Code
nssm set MyServiceName ObjectName "DOMAIN\User"

1.2 配置服务的安全选项

plaintextCopy Code
nssm set <ServiceName> AppAllowServiceLogon
nssm set <ServiceName> AppDisallowInteractiveLogon

2. 高级启动选项

2.1 启动和恢复选项

plaintextCopy Code
nssm set <ServiceName> Start SERVICE_*

示例:

plaintextCopy Code
nssm set MyServiceName Start SERVICE_AUTO_START

2.2 设置服务启动和失败时的操作

plaintextCopy Code
nssm set <ServiceName> AppRestartDelay <Seconds>
nssm set <ServiceName> AppFailureActions <ResetPeriod> <RebootMsg>

3. 进程控制和监控

3.1 监控和重启服务进程

plaintextCopy Code
nssm set <ServiceName> AppRotateFiles <FileSize> <FileCount>

示例:

plaintextCopy Code
nssm set MyServiceName AppRotateFiles 1024 5

3.2 控制服务进程优先级

plaintextCopy Code
nssm set <ServiceName> AppPriority <Priority>

示例:

plaintextCopy Code
nssm set MyServiceName AppPriority HIGH

4. 故障排除和日志记录

4.1 配置详细日志记录

plaintextCopy Code
nssm set <ServiceName> AppStdout <LogFilePath>
nssm set <ServiceName> AppStderr <LogFilePath>

示例:

plaintextCopy Code
nssm set MyServiceName AppStdout C:\Logs\stdout.log
nssm set MyServiceName AppStderr C:\Logs\stderr.log

4.2 查看服务状态和日志

plaintextCopy Code
nssm status <ServiceName>

5. 扩展和自定义选项

5.1 利用 NSSM 的扩展功能

NSSM 支持使用插件和扩展来增强其功能,可以根据需求进行定制和配置。

这些命令和示例展示了如何使用 NSSM 进行更高级的服务管理和配置。每个命令都有其具体的参数和用法,可以根据实际需求进行调整和应用。


NSSM 的专家级应用,可以深入探索更复杂和高级的功能和配置选项。以下是 NSSM 专家级应用的大纲和命令示例:

1. 进程控制和监控

1.1 控制服务进程的优先级和亲和性

plaintextCopy Code
nssm set <ServiceName> AppPriority <Priority>
nssm set <ServiceName> AppAffinity <AffinityMask>

示例:

plaintextCopy Code
nssm set MyServiceName AppPriority HIGH
nssm set MyServiceName AppAffinity 0x1  ; 使用第一个 CPU 核心

1.2 设置服务的进程 CPU 和内存限制

plaintextCopy Code
nssm set <ServiceName> AppCPUTimeLimit <Seconds>
nssm set <ServiceName> AppMemoryLimit <Bytes>

示例:

plaintextCopy Code
nssm set MyServiceName AppCPUTimeLimit 3600  ; 限制服务运行的 CPU 时间为 3600 秒
nssm set MyServiceName AppMemoryLimit 536870912  ; 限制服务占用的内存为 512 MB

2. 高级日志和调试选项

2.1 配置详细的调试日志

plaintextCopy Code
nssm set <ServiceName> AppEnvironmentAppend <VariableName>=<Value>
nssm set <ServiceName> AppStopMethodSkip <Method>

示例:

plaintextCopy Code
nssm set MyServiceName AppEnvironmentAppend DEBUG=1  ; 设置环境变量以启用调试模式
nssm set MyServiceName AppStopMethodSkip 5  ; 忽略停止方法 5 的调用,用于特定的停止场景处理

3. 多实例和负载均衡配置

3.1 配置多实例和服务互斥

plaintextCopy Code
nssm set <ServiceName> AppInstances <Number>
nssm set <ServiceName> AppMutex <MutexName>

示例:

plaintextCopy Code
nssm set MyServiceName AppInstances 5  ; 设置服务的最大实例数为 5
nssm set MyServiceName AppMutex MyServiceMutex  ; 指定服务的互斥对象名称

4. 高级安全和权限设置

4.1 配置服务的安全描述符和权限

plaintextCopy Code
nssm set <ServiceName> AppSecurityDescriptor <DescriptorString>
nssm set <ServiceName> AppServiceSidType <SidType>

示例:

plaintextCopy Code
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 控制服务进程的优先级和亲和性

plaintextCopy Code
nssm set <ServiceName> AppPriority <Priority>
nssm set <ServiceName> AppAffinity <AffinityMask>

示例:

plaintextCopy Code
nssm set MyServiceName AppPriority HIGH
nssm set MyServiceName AppAffinity 0x1  ; 将服务限制在第一个 CPU 核心上

1.2 设置服务的进程 CPU 和内存限制

plaintextCopy Code
nssm set <ServiceName> AppCPUTimeLimit <Seconds>
nssm set <ServiceName> AppMemoryLimit <Bytes>

示例:

plaintextCopy Code
nssm set MyServiceName AppCPUTimeLimit 3600  ; 限制服务运行的 CPU 时间为 3600 秒
nssm set MyServiceName AppMemoryLimit 536870912  ; 限制服务占用的内存为 512 MB

2. 高级日志和调试选项

2.1 配置详细的调试日志

plaintextCopy Code
nssm set <ServiceName> AppStdout <LogFile>
nssm set <ServiceName> AppStderr <LogFile>

示例:

plaintextCopy Code
nssm set MyServiceName AppStdout C:\Logs\MyService_stdout.log  ; 将标准输出重定向到指定文件
nssm set MyServiceName AppStderr C:\Logs\MyService_stderr.log  ; 将标准错误输出重定向到指定文件

3. 高级安全和权限设置

3.1 配置服务的安全描述符和权限

plaintextCopy Code
nssm set <ServiceName> AppSecurityDescriptor <DescriptorString>
nssm set <ServiceName> AppRotateFiles <True/False>

示例:

plaintextCopy Code
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 配置多实例和服务互斥

plaintextCopy Code
nssm set <ServiceName> AppInstances <Number>
nssm set <ServiceName> AppMutex <MutexName>

示例:

plaintextCopy Code
nssm set MyServiceName AppInstances 5  ; 设置服务的最大实例数为 5
nssm set MyServiceName AppMutex MyServiceMutex  ; 指定服务的互斥对象名称

5. 扩展和自定义选项

5.1 使用 NSSM 插件和扩展

NSSM 支持使用第三方插件和自定义扩展,以增强服务的功能和定制选项。

这些命令和示例展示了如何在 NSSM 中利用顶尖级的功能进行服务管理和配置,适用于需要高度灵活性和可配置性的场景。根据具体需求,可以深入探索和调整这些选项,以实现最佳的服务部署和管理效果。


 

posted @ 2024-06-29 03:55  suv789  阅读(2927)  评论(0)    收藏  举报