将EXE的可执行文件转换成进程来运行,这种需求可能比较小众。首先要了解一下可执行文件和服务有什么区别:
- 在系统登录的情况下,双击打开运行的程序就算作可执行文件,随着关闭窗口或系统注销,进程也将结束。
- 服务是只要系统启动就会随之运行的进程,比如系统自带的Server或IIS都是服务。
知道了大概的区别,将可执行文件转换为服务就显得有必要了。针对一些需要长时间随系统运行的程序,为了获得更稳定的运行状态,就可以将它转变为服务,在后台运行。而岩兔站这次实验的对象是无视所有防火墙的内网穿透软件frp。这款软件需要随机启动,并且没有操作界面,非常适合变成服务,在后台运行。
NSSM使用说明
这次介绍的软件叫作NSSM,可以一键将各种命令行程序转换为服务。
下载完成后得到一个nssm.exe
文件,使用时以管理员身份在命令行中定位到该文件,然后执行命令
基本操作
nssm install <servicename>
之后会弹出设置界面,需要做的就是
- 设置可执行文件
- 增加执行参数
- 设置服务名称
后续其他标签中还可以设置描述、自启动、日志等进程的信息,但都不是必须项。
最后点击“Install service”完成服务安装。
再转到任务管理器中的“服务”选项卡,可见ftp服务已经添加进来了,右键“开始”启动服务即可。
最后转到进程中,可见frpc服务已经正常启动了。
以上界面操作可以转换成一行代码执行
nssm install <servicename> <app> [<args>...]
在windows平台使用frp最大的问题是自动启动经常失效,导致网络连不通。将程序做到服务中,每次开机自启动,再也不担心启动不正常的问题。
扩展操作
以图形界面编辑现有的服务
nssm edit <servicename>
删除服务
nssm remove <servicename> confirm
管理服务状态
nssm start <servicename> nssm stop <servicename> nssm restart <servicename> nssm status <servicename> nssm rotate <servicename>
软件下载
官方地址:https://nssm.cc/
软件下载:稳定版