nssm 钠是什么东西
各位老铁们,大家好,今天由我来为大家分享nssm,一个强大的工具,可以将任何exe注册为系统服务,以及的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
所以我最终放弃了注册表自启动的方式,转而将程序注册为系统服务。
三种方式简介
(1) sc 命令
这是Windows自带的命令。您可以将exe注册为系统服务。命令格式也很清晰。结构如下:
sc create SVN binpath='exe程序的完整路径' displayname='服务名称' start=auto
其中:
sc create:是sc注册服务命令SVN :是你给服务起的名字binpath :是exe文件和命令参数的路径displayname:是服务的别名start:是否自动启动
可以说,这是一个非常绿色环保的命令,无需借助第三方工具即可轻松实现。然而,sc命令有一个致命的缺点。这个缺点是它注册的exe程序必须符合系统服务规范,否则无法启动。我只是个新手,没有时间去研究系统服务的规范,所以只能说再见了。
(2)神器instsrv+srvany
这是一个神奇的组合,是从Windows 2003的工具包中提取出来的。它已经有近20年的历史了,但仍然可以使用。
instsrv用于注册系统服务,srvany用于加载该服务引用的第三方exe程序。
操作命令如下:
instsrv.exe 注册的服务名称c:\abc\srvany.exe
这只是第一步。然后需要在注册表中添加Parameters子键,添加两个键值AppDirectory和AppParameters。详细的你可以自行搜索。
由于这个组合太旧,在Win10上存在兼容性问题。具体来说,instsrv注册服务时添加的srvany的绝对路径不带双引号,如下:
c:\abc\srvany.exe
Win10可以识别的格式是这样的:
'c:\abc\srvany.exe'
区别就在于一对双引号,花了我一整天的时间才搞清楚。太令人困惑了。
但上述问题并不是致命的。致命的是这个神奇的组合无法保护进程。只需轻轻一按,我们想要在后台运行的程序就说再见了。虽然我的程序有一个可以重启主程序的daemon组件,但是loader本身的功能还是比较弱。自己用也可以,但是发布给用户下面的nssm更靠谱。
(3)nssm,全称non-sucking server manager
NSSM是一个服务封装程序,可以将普通的exe程序封装成服务,使其可以像windows服务一样运行。它可以将几乎任何exe封装成系统服务(那些带有界面和对话框的不适合这样做)。还可以保护第三方程序不被杀,而且还具有图形化操作界面,方便新手使用。
nssm的简单范例
nssm的命令行操作非常简单,两步即可加载应用程序。以下是将D:\abc.exe 注册为系统服务的示例。
封装第三方应用来服务系统:
nssm 安装服务名称D:\abc.exe
执行完这一步后,nssm会自动在注册表中创建Parameters子键,并添加两个键值:AppDirectory和AppParameters,所以如果没有其他特殊要求,这句话就可以了。
启动第三方程序
nssm 启动服务名称
Tips:上面提到的“服务名称”最好使用英文或者数字,这样就不会出现兼容性问题。
其他常用命令有:
修改服务名称:nssm set DisplayName 用户查看时使用的服务名称
修改服务描述:nssm set Description。这是该服务的文字描述。支持中文。
删除服务:nssm删除服务名称确认
其他更多参数的使用请参考官网: