背景

使用pkg将node.js项目打包成exe,使用以下bat脚本:
sc create "myservice" binpath= "D:\test\myservice.exe" displayname= "myservice" depend= Tcpip start= auto
sc start "myservice"

这样直接把普通程序注册成服务,是不能运行的:
 

使用srvany.exe把exe应用程序安装成windows服务_应用程序

解决

使用srvany.exe把应用程序安装成windows服务,

链接:https://pan.baidu.com/s/1UMhZWXqFic07fJsrhGiVsQ?pwd=vcoz 
提取码:vcoz

bat脚本如下:

@echo off
chcp 65001

set ServiceName=myservice

sc stop %ServiceName%
sc delete %ServiceName%

echo.
echo ****************************************
echo.
echo 开始安装后台服务

sc create %ServiceName% binpath= "D:\test\srvany.exe"
reg add "HKLM\SYSTEM\CurrentControlSet\Services\%ServiceName%\Parameters" /v Application /t REG_SZ /d "D:\test\pds-api.exe"
reg add "HKLM\SYSTEM\CurrentControlSet\Services\%ServiceName%\Parameters" /v AppDirectory /t REG_SZ /d "D:\test"
reg add "HKLM\SYSTEM\CurrentControlSet\Services\%ServiceName%" /v Description /t REG_SZ /d "%ServiceName%"
sc start %ServiceName%

echo.
echo 后台服务安装完成
echo.
echo ****************************************

pause