注册frpc为windows服务,可在未登录用户时启动,工具--nssm详解

发布时间 2024-01-04 11:29:17作者: 狼人:-)

说明:

在Windows 中配置启动项仅是在用户登录后运行。在登录前要启动就需要将其配置为“服务”。

简介:

之前介绍过如何使用frp进行端口转发和二级域名自定义,方便公司进行统一管理和监控。
但在实际生产过程中,开发人员发现frpc的窗口为应用窗口,极易出现误操作而关闭应用窗口,为了解决此问题,建议将frpc注册为windows服务,方便使用。

此方法使用nssm(稳定版本)工具将.EXE文件注册为Windows服务

1. 下载并解压压缩包,使用cmd进入对应系统版本工具的路径。(请使用管理员身份运行cmd)

使用cmd进入工具路径后可键入nssm查看工具使用参数,或直接双击查看工具使用参数。

2. 在cmd中键入命令,进入服务编辑页面:

1
nssm install serviceName

3. 设置服务路径地址

如下所示点击Path,为需要注册为服务的应用选择所在路径。Starup directory将自动生成。

注:图中所示的Arguments参数请不要设置否则会造成服务开启失败。

4.设置详details

设置服务的描述信息

5.设置log on

勾选Allow service to interact with desktop选项

5.设置I / O选项卡

在frpc文件夹下创建日志输出文件,并选择。

其他选项卡信息使用默认设置即可。


nssm 常用命令

1
2
3
4
nssm install serviceName    #安装服务
nssm edit serviceName       #使用GUI编辑已安装的服务
nssm restart serviceName    #重新启动服务
nssm remove serviceName     #删除已安装的服务

感谢博主分享:

https://aikiller.github.io/2018/03/14/%E5%B0%86frpc%E6%B3%A8%E5%86%8C%E4%B8%BAwindows%E6%9C%8D%E5%8A%A1/

nssm详解

 

零、文章目录

 

一、nssm简介

 

nssm是一个服务封装程序,它可以将普通exe程序封装成服务,实现开机自启动,同类型的工具还有微软自己的srvany,不过nssm更加简单易用,并且功能强大。

 

它的特点如下:

 

  • 支持普通exe程序(控制台程序或者带界面的Windows程序都可以)
  • 安装简单,修改方便
  • 可以自动守护封装了的服务,程序挂掉了后可以自动重启

 

官网地址:https://nssm.cc/

 

二、nssm配置详解

 

1、下载地址

 

官网地址:https://nssm.cc/download

 

百度网盘:https://pan.baidu.com/s/12J0jJF9_7-bstH1eGMI8Lg?pwd=1234

 

2、解压压缩包,根据系统位数选择64或32位程序

 

image-20220219094605675

 

image-20220219095328967

 

3、打开命令行,运行nssm程序

 

管理员权限打开命令行工具,切换到nssm.exe所在路径,运行 nssm install,打开程序配置界面

 

image-20220219095803811

 

配置项说明:

 

  • Path:运行应用程序的程序

  • Startup directory:应用程序所在的目录

  • Arguments:应用运行的参数

  • Service name:生成服务的名称

 

最后点击install service 完成windows服务安装,在windows服务列表就能看到创建的服务了。

 

4、常用命令

 

  • nssm install servername //创建servername服务,弹出配置界面
  • nssm start servername //启动服务
  • nssm stop servername //暂停服务
  • nssm restart servername //重新启动服务
  • nssm remove servername //删除创建的servername服务
  • nssm edit servername//更改servername服务,弹出修改界面
  • nssm set servername 参数名 参数值 //设置服务参数值
  • sc delete servername//windows删除服务命令
  • 直接使用windows的服务管理也可以实现服务的操作,服务右键属性 - 恢复即可设置服务挂掉重启等内容。

 

三、实战:将应用做成服务

 

1、程序说明

 

这里演示将net6的web项目制作成windows服务

 

应用的启动命令是:dotnet WebApplication_nssm.dll --urls=http://*:8888/ --port=8888

 

2、安装服务

 

nssm install

 

  • 1

 

  • Path:C:\Program Files\dotnet\dotnet.exe
  • Startup directory:D:\TechLearn\001、Tools--nssm\WebApplication_nssm\bin\Debug\net6.0
  • Arguments:WebApplication_nssm.dll --urls=http://*:8888/ --port=8888
  • Service name:webapp8888

 

最后点击install service 完成windows服务安装,在windows服务列表就能看到创建的服务了。

 

image-20220223155047231

 

image-20220223160017209

 

3、管理服务

 

(1)启动服务

 

D:\nssm-2.24\win64>nssm start webapp8888
webapp8888: START: 操作成功完成。

 

  • 1
  • 2

 

image-20220223160348039

 

image-20220223160319928

 

(2)关闭服务

 

D:\nssm-2.24\win64>nssm stop webapp8888
webapp8888: STOP: 操作成功完成。

 

  • 1
  • 2

 

image-20220223160954390

 

(3)重启服务

 

如果服务未启动就会直接启动,启动的会重启。

 

D:\nssm-2.24\win64>nssm restart webapp8888
webapp8888: STOP: 服务尚未启动。
webapp8888: START: 操作成功完成。

D:\nssm-2.24\win64>nssm restart webapp8888
webapp8888: STOP: 操作成功完成。
webapp8888: START: 操作成功完成。

 

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

 

(4)修改服务

 

输入命令,修改配置,不能修改服务名

 

D:\nssm-2.24\win64>nssm edit webapp8888

 

  • 1

 

image-20220223163535494

 

(5)删除服务

 

删除有二次确认,删除之后服务就找不到了,需要重新安装

 

D:\nssm-2.24\win64>nssm remove webapp8888
Service "webapp8888" removed successfully!

 

  • 1
  • 2

 

image-20220223163705348