ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

使用nssm将服务托管给win service

2022-06-15 16:32:26  阅读:202  来源: 互联网

标签:nssm set 服务 service win 命令行 test java


nssm官网:http://www.nssm.cc/
下载好nssm包后解压,找到nssm.exe文件,后续操作都需要以命令行启动

1.安装服务

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

application

程序的具体位置

image

  • 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

  • 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

命令行形式
nssm set UT2003 ObjectName LocalSystem
nssm set UT2003 Type SERVICE_WIN32_OWN_PROCESS

Dependencies

依赖:指明当前服务运行前,必须启动哪个服务,例如java程序可能依赖mysql

image

命令行形式
nssm set test DependOnService MySQL

Process

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

image

命令行形式
nssm set test AppPriority NORMAL_PRIORITY_CLASS
nssm set test AppNoConsole 0
nssm set test AppAffinity All

Shutdown

列出了在崩溃后或服务正常停止时整理应用程序时使用的各种停止方法和超时时长。

image

命令行形式
nssm set test AppStopMethodSkip 0
nssm set test AppStopMethodConsole 1500
nssm set test AppStopMethodWindow 1500
nssm set test AppStopMethodThreads 1500

exit actions

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

image

命令行形式
nssm set test AppThrottle 1500
nssm set test AppExit Default Restart
nssm set test AppRestartDelay 0

I/O

指定日志输出位置

image

命令行形式
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

命令行形式
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

命令行形式
nssm set test AppEnvironmentExtra JAVA_HOME=C:\java

标签:nssm,set,服务,service,win,命令行,test,java
来源: https://www.cnblogs.com/forlive/p/16378909.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有