文章目录

  • 指令介绍
    • `Install`
    • `Edit`
    • `Set`
      • Application Tab
      • Details Tab
      • Log on Tab
      • Dependencies Tab
      • Process Tab
      • Shutdown Tab
      • Exit actions Tab
      • I/O Tab
      • File rotation Tab
      • Environment Tab
    • `Get`
    • `Reset`
    • `Remove`
    • 服务管理
      • `start`
      • `stop`
      • `restart`
      • `status`
      • `rotate`

指令介绍

参考链接

https://nssm.cc/usage

https://nssm.cc/commands

这些都是建立在管理员权限执行的cmd命令提示符窗口前提下,如果以普通用户执行cmd将提示对应的权限不足问题

管理员启动cmd,并切换路径到nssm所在目录,输入nssm查看相关指令

>nssm
NSSM: The non-sucking service manager
Version 2.24 64-bit, 2014-08-31
Usage: nssm <option> [<args> ...]To show service installation GUI:nssm install [<servicename>]To install a service without confirmation:nssm install <servicename> <app> [<args> ...]To show service editing GUI:nssm edit <servicename>To retrieve or edit service parameters directly:nssm get <servicename> <parameter> [<subparameter>]nssm set <servicename> <parameter> [<subparameter>] <value>nssm reset <servicename> <parameter> [<subparameter>]To show service removal GUI:nssm remove [<servicename>]To remove a service without confirmation:nssm remove <servicename> confirmTo manage a service:nssm start <servicename>nssm stop <servicename>nssm restart <servicename>nssm status <servicename>nssm rotate <servicename>

Install

安装服务,可以设定服务的对应注册的服务名称,也可以不设定,选择时,手动输入

>nssm install <servicename>
或
>nssm install
或
>nssm install <servicename> <app> [<args> ...]

servicename需要注册的服务名称

app目标应用的完整路径

args可选参数

Edit

修改服务对应配置,通过弹窗页面进行操作

>nssm edit <servicename>

例如,本地以前由nssm注册的服务,Frpc

>nssm edit Frpc

Set

用于设置nssm中各个页签对应的相关功能参数

>nssm set <servicename> <parameter> [<subparameter>]

parameter参数名称

subparameter下级参数

Application Tab

应用基础配置

指令设置

nssm set <servicename> Application <fullpath>
nssm set <servicename> AppDirectory <directory>
nssm set <servicename> AppParameters [args...]

Details Tab

服务详情

指令设置

nssm set <servicename> DisplayName <displayname>
nssm set <servicename> Description <description>
nssm set <servicename> Start SERVICE_AUTO_START

启动模式清单:

  • SERVICE_AUTO_START: Automatic 自动.
  • SERVICE_DELAYED_AUTO_START: Delayed 自动(延时启动).
  • SERVICE_DEMAND_START: Manual 手动.
  • SERVICE_DISABLED: 禁用.

Log on Tab

登录配置,用于配置当前服务以何种身份进行进程启动,默认为LocalSystem

指令配置

nssm get <servicename> ObjectName
nssm set <servicename> ObjectName <username> <password>
nssm set <servicename> ObjectName <username> correct horse battery staple
nssm set <servicename> ObjectName <username> ""

Dependencies Tab

配置服务启动依赖项,通过配置依赖服务名称,实现服务依赖配置,配置多个依赖服务又空格分隔,既可以是写入服务的名称name,又可以使服务的显示名称displayname

指令配置

nssm set <servicename> DependOnService [servicname01] [servicename02]
nssm set <servicename> DependOnService [service displayname01] [service displayname01]]

Process Tab

进程相关配置,用于设置应用程序的进程优先级和CPU的执行选择,默认情况下应用程序以正常优先级运行,并允许在所有CPU上运行,如希望进程限制为可用CPU的子集,可取消选中"所有处理器"并依据实际情况选择特定CPU

指令配置

nssm set <servicename> AppPriority NORMAL_PRIORITY_CLASS
nssm set <servicename> AppNoConsole 0
nssm set <servicename> AppAffinity All

AppNoConsole设置进程是否新建控制台窗体,默认为0

从版本 2.22 开始,nssm将默认为应用程序创建一个新的控制台窗口,允许一些程序运行,否则会失败,例如那些希望能够读取用户输入的程序

若不需要,可以通过将 HKLM\System\CurrentControlSet\Services\servicename\Parameters 下的整数 (REG_DWORD)AppNoConsole 设置为非零值来禁用控制台窗口

AppAffinity默认设置为进程可在所有CPU上运行,可以指定对应数值,用于特定CPU上运行,连续可用-起始到终止,,逗号用于分隔不同CPU

nssm set <servicename> AppAffinity 0-4,7

进程优先级配置

  • REALTIME_PRIORITY_CLASS
  • HIGH_PRIORITY_CLASS
  • ABOVE_NORMAL_PRIORITY_CLASS
  • NORMAL_PRIORITY_CLASS
  • BELOW_NORMAL_PRIORITY_CLASS
  • IDLE_PRIORITY_CLASS

Shutdown Tab

停止服务,配置服务停止时,相关停止操作

指令配置

nssm set <servicename> AppStopMethodSkip 0
nssm set <servicename> AppStopMethodConsole 1500
nssm set <servicename> AppStopMethodWindow 1500
nssm set <servicename> AppStopMethodThreads 1500

AppStopMethodSkip对应属性设置是否选择,默认为0

配置值清单

  • 1 - Don’t send Control-C to the console.
  • 2 - Don’t send WM_CLOSE to windows.
  • 4 - Don’t send WM_QUIT to threads.
  • 8 - Don’t call TerminateProcess().

Exit actions Tab

退出操作配置,用于调整服务退出时的重启限制和默认操作,还可以指定应用程序自动重新启动之间的强制延迟

指令配置

nssm set <servicename> AppThrottle 1500
nssm set <servicename> AppExit Default Restart
nssm set <servicename> AppRestartDelay 0

AppThrottle意外退出,延时重启的时间间隔

为避免 CPU 资源紧张,若受监控的应用程序在启动后意外退出,nssm将限制服务的重新启动

默认情况下,使用1500毫秒的阈值,要指定不同的值,需创建一个整数 (REG_DWORD) 值 HKLM\System\CurrentControlSet\Services\servicename\Parameters\AppThrottle 并将其设置为所需的毫秒数

AppExit为要配置应用程序退出时nssm应采取的操作,需编辑键 HKLM\System\CurrentControlSet\Services\servicename\Parameters\AppExit 的默认值

nssm运行时注册表中不存在该键,它将创建它并将值设置为重新启动。 将其更改为忽略或退出以指定所采取的操作

nssm只会在此密钥不存在时创建它, 用户的更改不会被覆盖,对应注册表内容如下

  • Default Restart(Restart application)
  • Ignore(No action)
  • Exit(Stop service)
  • Suicide(Fack crash)

I/O Tab

配置文件输出/输出路径,一般为系统异常和日志运行输出日志

配置指令

nssm set <servicename> AppStdin [filepath]
nssm set <servicename> AppStdout [filepath]
nssm set <servicename> AppStderr [filepath]

例如

>nssm set Frpc AppStderr C:\games\frpc\service.log

File rotation Tab

可与I/O设置结合使用,用于配置服务重启时输出文件的轮换操作

指令配置

nssm set <servicename> AppStdoutCreationDisposition 4
nssm set <servicename> AppStderrCreationDisposition 4
nssm set <servicename> AppRotateFiles 1
nssm set <servicename> AppRotateOnline 0
nssm set <servicename> AppRotateSeconds 86400
nssm set <servicename> AppRotateBytes 104856

AppStdoutCreationDisposition输出CreationDisposition的参数值

AppStderrCreationDisposition异常输出CreationDisposition的参数值

AppRotateFiles是否开启文件轮换操作,1标识启用,0表示取消

AppRotateOnline是否在服务运行时动态轮换日志文件

AppRotateSeconds轮换文件触发时间间隔数

AppRotateBytes轮换文件触发的单文件大小阀值

Environment Tab

可用于指定要传递给应用程序的以换行符分隔的环境变量列表

配置指令

nssm set <servicename> AppEnvironmentExtra JAVA_HOME=C:\java
nssm set <servicename> AppEnvironmentExtra CLASSPATH=C:\Classes TEMP=C:\Temp

例如,获取环境变量

>nssm get <servicename> AppEnvironmentExtra CLASSPATH
C:\Classes

Get

获取服务特定参数配置

>nssm get <servicename> <parameter> [<subparameter>]

Reset

重置服务参数配置

>nssm reset <servicename> <parameter> [<subparameter>]

Remove

卸载对应安装的服务,通过参数页面进行交互式操作

>nssm remove [<servicename>]
或
>nssm remove <servicename> confirm

例如

>nssm remove Frpc

服务管理

start

启动服务

>nssm start <serivcename>

stop

>nssm stop <serivcename>

restart

>nssm restart <serivcename>

status

>nssm status <serivcename>

rotate

>nssm rotate <serivcename>

以上即为笔者收集和整理nssm相关的指令配置

太阳当空照-Windows服务化方式NSSM指令清单相关推荐

  1. 以Windows服务方式运行.NET Core程序

    原文:以Windows服务方式运行.NET Core程序 在之前一篇博客<以Windows服务方式运行ASP.NET Core程序>中我讲述了如何把ASP.NET Core程序作为Wind ...

  2. windows下的diskpart指令彻底格式化清除U盘

    参考:windows下的diskpart指令修复U盘分区 作者:丶PURSUING 发布时间:2021-02-02 09:38:55 网址:https://blog.csdn.net/weixin_4 ...

  3. windows验证方式

    windows验证方式包括有UNC,和local name (分别对应2000以上和2000以前) 假如一个网站需要验证: 验证方式有四种:基于当前用户名和密码验证.匿名登录.用户名提示来验证. 在i ...

  4. Oracle10表数据编辑器,Oracle ORACLE 快速批量导入文本数据到数据库(sqlldr工具)方法与分析 (Windows CMD 方式)...

    Oracle ORACLE 快速批量导入文本数据到数据库(sqlldr工具)方法与分析 (Windows CMD 方式) 在实际生产环境中,常会碰到将一些如通过通讯接口传过来的数据(文本文件 txt) ...

  5. rust军用船指令_RUST物品指令清单(英文版)

    RUST物品指令清单(英文版) 所属分类:其他 开发工具:WINDOWS 文件大小:19KB 下载次数:7 上传日期:2017-07-03 20:24:08 上 传 者:escmfack 说明:  R ...

  6. Windows COM 免注册 manifest 清单文件

    一.原理 XP以上的操作系统支持COM免注册技术,操作系统在加载EXE时会自动扫描是否包含配套的manifest信息,若有则读取manifest内容加载组件,否则读取注册表. manifest描述了E ...

  7. Windows内核 基本汇编指令

    1)用VS2010新建Win32 Console Application,工程名为ACECore,工程建立完成后得到打开文件ACECore.cpp,代码如下: #include "stdaf ...

  8. Windows下使用sh指令的方法

    引言: 最近在github上找开源代码实现时,遇到了sh指令.然后发现window的cmd无法使用这个指令,因此本文就是为了介绍大家在windows环境下使用sh指令的方法,本文将介绍2种方法来帮助大 ...

  9. windows进程间通信方式总结

    1 文件映射 文件映射(Memory-Mapped Files)能使进程把文件内容当作进程地址区间一块内存那样来对待.因此,进程不必使用文件I/O操作,只需简单的指针操作就可读取和修改文件的内容. W ...

  10. 从未加入域的计算机上使用Windows验证方式访问SQL Server

    背景信息 随着企业信息化建设的不断深入,业务系统越来越多,统一身份验证的需求就更加迫切,Windows的域模式毫无疑问是首选.如果你的电脑已加入域中,就可以实现单点登录访问Windows相关的应用程序 ...

最新文章

  1. java导出csv文件使用Excel打开乱码问题
  2. [转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调
  3. 【OpenCV 例程200篇】15. 图像的加权加法(cv2.addWeight)
  4. 微信小程序 【笔记003】小程序的事件处理
  5. 利用python求解节点介数和边介数
  6. css 设置表格右边有图片_20个web前端HTML5初学者实用CSS代码技巧
  7. 仿照vue实现简易的MVVM框架(二)
  8. 堆栈用数组和用链表实现
  9. Qt QString 与 const char* 类型的转换
  10. 设为首页和加入收藏js
  11. 学生用计算机重启,如何使学校的电脑在重启后不自动还原系统?
  12. 华为mate40e怎样截长图步骤分享
  13. python win32转pdf 横版_.doc使用python转换为pdf
  14. 算法学习-求平方根函数
  15. 淘宝返利公众号开发、淘宝联盟API权限申请及对接详细教程
  16. 非相参积累 matlab,非相参积累增益,比相参积累增益更难计算?
  17. 使用multcloud在云盘之间传送文件
  18. android实习日志_【安卓开发实习生工作总结_安卓开发实习生个人年终总结】-看准网...
  19. esxi设置群晖核显直通
  20. 三、python爬虫学习--动态下载网站漫画

热门文章

  1. java我行我素购物系统_用java怎么编写 我行我素shopping购物管理体统
  2. PAT C语言 1031 查验身份证 (15 分) 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:
  3. c语言实验报告1答案,郑州大学C语言实验报告答案
  4. PPAPI nacl_sdk安装
  5. windows下.bat文件启动多个jar文件 (.bat 批量启动jar)
  6. web开发--文档下载
  7. mysql gis 高德_基于高德自定义地图数据的GIS矢量地图制作
  8. 大数据高级开发工程师——大数据相关工具之三 Maxwell
  9. cypress自动化--运行测试用例报告输出
  10. 苹果cmsv10资源采集插件+一键添加到本地