• 【转】Windows使用NSSM将任意exe封装为服务


    原文地址:https://gofinall.com/81.html

    本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处

    ——————————————————————————————————————————

    介绍
    NSSM是一个服务封装程序,它可以将普通exe程序封装成服务,使之像windows服务一样运行。同类型的工具还有微软自己的srvany,不过nssm更加简单易用,并且功能强大。它的特点如下:

    1、支持普通exe程序(控制台程序或者带界面的Windows程序都可以)
    2、安装简单,修改方便
    3、可以重定向输出(并且支持Rotation)
    4、可以自动守护封装了的服务,程序挂掉了后可以自动重启
    5、可以自定义环境变量
    官网
    http://nssm.cc

    使用
    1、下载最新版本nssm,也可以下载最新release版本;
    2、根据自己的平台,将32/64位nssm.exe文件解压至任意文件夹。
    3、cmd定位至nssm.exe所在目录。
    4、输入 nssm install {服务名称},即注册服务的名称。注册服务弹出如下NSSM界面。

     

    5、Application标签设置:
    1)Application Path: 选择系统安装的exe。
    2)Startup directory: 选择exe项目的根目录。
    3)Arguments: 输入启动参数

    1、上述步骤操作完成,即可点击Install service来注册服务。我们在系统的服务中即可找到刚刚注册的服务。
    2、在系统服务中找到刚刚注册的服务,右键属性 - 恢复即可设置此服务挂掉重启等内容。
    其它界面的是高级参数的配置,可以根据需要自行选择。
    参数填完后执行"install service"按钮即可将服务安装到系统,可以使用系统的服务管理工具查看了。
    当然,如果要自动化安装,可以直接带上程序路径: nssm install <servicename> <program> [<arguments>]
    NSSM本身win7及以上的系统基本都是支持的,我测试过win7,2008,2016系统,都是没有问题的,如果安装失败,请首先检查是否装了某国产管家或国产杀毒软件。
    安装完成后,服务还没有启动,需要通过下面的服务管理的命令启动服务。

    服务管理
    服务管理主要有启动、停止和重启,其命令如下:
    1)启动服务:nssm start <servicename>
    2)停止服务: nssm stop <servicename>
    3)重启服务: nssm restart <servicename>
    当然,也可以使用系统自带的服务管理器操作和使用系统的命令。

    修改参数
    NSSM安装的服务修改起来非常方便,命令如下:
    nssm edit <servicename>
    会自动启动操作界面,直接更改即可。

    服务删除
    服务删除可以使用如下命令之一:
    1)nssm remove <servicename>
    2)nssm remove <servicename> confirm
    功能没有大的区别,后面的命令是自动确认的,没有交互界面。

    命令行
    服务自动化需要使用更多的命令行,具体参看官方文档: https://nssm.cc/commands
    如下是一个官方安装Jenkins服务的示例:

    复制代码
    nssm install Jenkins %PROGRAMFILES%\Java\jre7\bin\java.exe
    nssm set Jenkins AppParameters -jar slave.jar -jnlpUrl https://jenkins/computer/%COMPUTERNAME%/slave-agent.jnlp -secret redacted
    nssm set Jenkins AppDirectory C:\Jenkins
    nssm set Jenkins AppStdout C:\Jenkins\jenkins.log
    nssm set Jenkins AppStderr C:\Jenkins\jenkins.log
    nssm set Jenkins AppStopMethodSkip 6
    nssm set Jenkins AppStopMethodConsole 1000
    nssm set Jenkins AppThrottle 5000
    nssm start Jenkins
    复制代码
  • 相关阅读:
    题解 P2647 【最大收益】
    CF817E Choosing The Commander
    P2922 [USACO08DEC]Secret Message G
    洛谷月赛 P7107 天选之人
    如何在考场上快速用C++写高级对拍器
    题解 CF527D 【Clique Problem】
    P6768 [USACO05MAR]Ombrophobic Bovines 发抖的牛
    [USACO06NOV]Corn Fields G
    Orz 教主的比赛题解
    JZOI 4311 统一天下
  • 原文地址:https://www.cnblogs.com/chinasoft/p/16305967.html
Copyright © 2020-2023  润新知