NSSM(Non-Sucking Service Manager)是一个开源的 Windows 服务管理工具,它可以帮助用户将任何可执行程序转换为一个 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  阅读(217)  评论(0编辑  收藏  举报