• 使用nssm将服务托管给win service


    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

    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>
    
  • 相关阅读:
    springboot之静态资源放行的方法(记录)
    FastDFS之图片上传
    FastDFS安装部署
    Docker安装MySQL5.7.25
    123qwe
    Spring3 MVC 注解(一)---注解基本配置及@controller和 @RequestMapping 常用解释
    jQuery可见性过滤选择器
    jQuery属性过滤选择器
    jQuery内容过滤选择器
    jQuery子元素过滤选择器
  • 原文地址:https://www.cnblogs.com/forlive/p/16378909.html
Copyright © 2020-2023  润新知