太阳当空照-Windows服务化方式NSSM指令清单
2021/8/6 7:06:00
本文主要是介绍太阳当空照-Windows服务化方式NSSM指令清单,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 指令介绍
- `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> confirm To 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指令清单的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南