原文地址: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

【转】Windows使用NSSM将任意exe封装为服务的更多相关文章

  1. 使用NSSM把任意exe程序注册成Windows服务

    1.登录NSSM官网下载最新版本: http://www.nssm.cc/download 2.解压之后可以看到win32和win64位的nssm.exe,根据自己的电脑选择使用 3.拷贝一份nssm ...

  2. 使用NSSM将exe封装为服务

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

  3. 把任意exe程序注册成windows系统服务

    某gae代理软件每次开机都需要手动启动,就算添加成开机启动项,在win8.1下权限的管理更加严格,开机时并不能成功启动软件(无人值守时开机),因此在网上搜索把exe注册成系统服务的办法,找到论坛两个帖 ...

  4. 怎样把任意exe程序注册成windows系统服务(手动注册服务)

    1. 要实现这个功能要用到微软提供的两个小工具“instsrv.exe”和“srvany.exe”(下载地址:http://www.cr173.com/soft/64394.html). 先下载这两个 ...

  5. Linux的.a、.so和.o文件 windows下obj,lib,dll,exe的关系

    Linux的.a..so和.o文件 - chlele0105的专栏 - CSDN博客 https://blog.csdn.net/chlele0105/article/details/23691147 ...

  6. Linux的.a、.so和.o文件 windows下obj,lib,dll,exe的关系 动态库内存管理 动态链接库搜索顺序 符号解析和绑定 strlen函数的汇编实现分析

    Linux的.a..so和.o文件 - chlele0105的专栏 - CSDN博客 https://blog.csdn.net/chlele0105/article/details/23691147 ...

  7. windows下MySql没有setup.exe时的安装方法

    01.把 mysql-advanced-5.6.17-winx64.zip 解压到自定义 D:\mysql-5.6.17-W64 或 D:\mysql-advanced-5.6.17-winx64 目 ...

  8. Failed to execute command: ""C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\ResGen.exe" 的一个解决办法

    最近在做wpf项目,期间下了一些源码参考,但是在build时经常遇到下面这种bug: Error 2 Failed to execute command: ""C:\Program ...

  9. windows下使用批处理调用exe和服务

    手动调用exe或者启动服务很麻烦,可以使用.bat批处理文件,双击运行即可.步骤如下:创建一个新的txt文件但是保存成.bat结尾的文件(选择用记事本打开编写命令),输入代码内容格式如下: @echo ...

  10. 在Windows平台下Qt的exe报错问题排查步骤

    在Windows平台下Qt的exe报错问题排查步骤 工具介绍: 1. Dependency Worker Dependency Worker是一个免费的用具用来扫描任何的32bit 或者64bit 的 ...

随机推荐

  1. F-47(copy 邓大顾)

    *&---------------------------------------------------------------------* *& F-47过账 *&--- ...

  2. vitepress静态站点支持离线浏览器本地全文搜索功能

    用vitepress来构建静态站点时都知道,如果页面多时都要在导航上面增加一个搜索功能. 搜索功能最常用的就是第三方的Algolia. 查了一下vitepress文档才知道,vitepress支持一个 ...

  3. UFT 模拟鼠标(包括fireEvent) & 键盘操作

    1. 鼠标 2. 键盘 3. UFT FireEvent 实现多样JS 操作

  4. python扩展中的调试器不再支持小于3.8的python版本(debugpy)

    报错原因 python版本过低,vscode的插件不再支持低版本的python调试. 尝试方法 如果搜这个报错,常见的方法就是降低插件版本,但是可能带来新的问题:vscode Cannot read ...

  5. Kafka入门实战教程(6):调优Kafka的实践

    1 调优Kafka的目标 通常来说,任何系统调优的目标都是为了满足系统常见的非功能性需求,而性能则是众多非功能性需求中最重要的一个. 不同的系统对性能的侧重点不同,DB的话性能是响应时间,而对于Kaf ...

  6. FastAPI WebSocket:你的双向通信通道为何如此丝滑?

    扫描二维码 关注或者微信搜一搜:编程智域 前端至全栈交流与成长 发现1000+提升效率与开发的AI工具和实用程序:https://tools.cmdragon.cn/ # 示例代码运行环境 # Pyt ...

  7. Windows 系统 局域网文件夹共享无法访问的终极解决方法

    先介绍 Win10 无法访问其他电脑的解决方法 首先,Win10 能成功访问共享文件夹,必须有安装 SMB1 协议,否则会提示找不到网络名称的提示. 方法很简单,点击 微软小娜 Cortana 输入  ...

  8. SqlServer查看某个表的索引详细信息

    SELECT TableId=O.[object_id], TableName=O.Name, IndexId=ISNULL(KC.[object_id],IDX.index_id), IndexNa ...

  9. 解决Ubuntu上使用fsck命令时遇到的“The superlock could not be read......”的问题

    问题产生原因:我也不太清楚,可能是给硬盘分区的时候出的问题. 问题解决方法:依次执行以下的命令,请根据实际情况调整存储设备名称. 注意:下面的操作会清空硬盘所有数据,请根据自己的需求来判断是否需要执行 ...

  10. Wordpress - 将文章或页面放在不同的Menu里

    一般模板都可以自定义Menu.我们并不希望将所有的文章都放在Home里. 而是希望在不通的标签里显示不同的内容,可以是静态页面,也可以是分类的文章. 在Wordpress的后台,添加新的Menu,并将 ...