侧边栏壁纸
博主头像
平凡之路博主等级

生活原本沉闷,但跑起来就会有风!

  • 累计撰写 82 篇文章
  • 累计创建 10 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

使用nssm注册windows服务

平凡之路
2023-08-23 / 0 评论 / 0 点赞 / 321 阅读 / 1,162 字

1.安装服务

nssm官网 ----------------- nssm下载地址

PS E:\> .\nssm.exe install test
Administrator access is needed to install a service.


application
程序的具体位置
image-1692778225667
path: 可执行文件的路径,如果是java程序,应该指定java.exe的位置,例如:C:\Program Files\Java\jdk1.8.0_144\bin\java.exe
startup directory: 程序启动路径
arguments: 启动参数,例如java程序的 -jar xxx.jar

命令行形式:

nssm set test Application "C:\Program Files\Java\jdk1.8.0_144\bin\java.exe"
nssm set test AppDirectory "D:\test"
nssm set test AppParameters "-jar xxx.jar"

Details
显示服务的详细信息
image-1692778272771
display: 显示名称
description: 备注信息
startup type: 开机启动类型
命令行形式

nssm set test DisplayName UT2k3
nssm set test Description Unreal Tournament 2003
nssm set test Start SERVICE_AUTO_START

开机启动类型分别为

SERVICE_AUTO_START: 开机自启
SERVICE_DELAYED_AUTO_START: 开机延迟自启
SERVICE_DEMAND_START: 手动启动
SERVICE_DISABLED: 服务器不可用

Log on
运行账户,windows服务很少改这个
image-1692778306280
命令行形式

nssm set UT2003 ObjectName LocalSystem
nssm set UT2003 Type SERVICE_WIN32_OWN_PROCESS

Dependencies
依赖:指明当前服务运行前,必须启动哪个服务,例如java程序可能依赖mysql
image-1692778339634
命令行形式

nssm set test DependOnService MySQL

Process
可用于设置应用程序的进程 优先级和 CPU 亲和性。默认情况下,应用程序将以正常优先级运行,并允许在所有 CPU 上执行。如果您希望将进程限制为可用 CPU 的子集,请取消选中“所有处理器”并根据需要选择 CPU。服务运行时,可以从 Windows 任务管理器更改进程优先级和亲缘关系。
image-1692778368853
命令行形式

nssm set test AppPriority NORMAL_PRIORITY_CLASS
nssm set test AppNoConsole 0
nssm set test AppAffinity All

Shutdown
列出了在崩溃后或服务正常停止时整理应用程序时使用的各种停止方法和超时时长。
image-1692778408228
命令行形式

nssm set test AppStopMethodSkip 0
nssm set test AppStopMethodConsole 1500
nssm set test AppStopMethodWindow 1500
nssm set test AppStopMethodThreads 1500

exit actions
可用于调整服务退出时的 重启限制和默认 操作。您还可以指定 应用程序自动重新启动之间的强制延迟。要为特定应用程序退出代码配置退出操作,您必须使用注册表,如下所述。
image-1692778433333
命令行形式

nssm set test AppThrottle 1500
nssm set test AppExit Default Restart
nssm set test AppRestartDelay 0

I/O
指定日志输出位置
image-1692778455611
命令行形式

nssm set test AppStdout C:\games\ut2003\service.log
nssm set test AppStderr C:\games\ut2003\service.log

file rotation
日志切割,文件轮换选项卡可与 I/O设置结合使用,以在服务重新启动时配置输出文件的轮换。

Replace existing Output and/or Error files: 启动服务时覆盖现有日志文件
Rotate files: 重命名现有文件
X seconds: 多长时间切割一次
X bytes: 多大文件切割一次
Rotate while service is running checkbox: 默认情况下,nssm仅在服务(重新)启动时执行文件切割。要在服务运行时启用旋转到指定大小限制的文件,请选中在服务运行时旋转复选框。在线轮换忽略时间配置.
在线轮换需要nssm拦截应用程序的输出并自行写入文件。复杂性的增加必然导致失败的风险增加。
image-1692778487453
命令行形式

nssm set test AppStdoutCreationDisposition 4
nssm set test AppStderrCreationDisposition 4
nssm set test AppRotateFiles 1
nssm set test AppRotateOnline 0
nssm set test AppRotateSeconds 86400
nssm set test AppRotateBytes 1048576

Environment
用于指定以换行符分隔的环境变量列表以传递给应用程序。如果选中替换默认环境复选框,则指定的变量将是唯一传递给服务的变量。未选中时(默认),将保留服务启动时创建的环境。
image-1692778521662
命令行形式

nssm set test AppEnvironmentExtra JAVA_HOME=C:\java

2.卸载服务

PS E:\> .\nssm.exe remove test
Administrator access is needed to remove a service.

3.其他

PS E:\> .\nssm.exe 
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>


0

评论区