我在node-js平台上有一个应用程序安装程序,目前正在开发一个使用Inno Setup和NSSM的安装程序(应用程序应该作为服务运行)。
问题是,当NSSM尝试注册服务(设备是运行在tablet PC上的Windows 8.1 32位企业版)时,NSSM失败并返回退出代码5。
我找不到比拒绝访问和在这件事上没有帮助更有用的东西了。尝试了很多东西,比如更改文件夹、名称、用户,每次都会失败。
Inno脚本如下所示:
; Add System Service Filename: "{app}\{#NSSM}";
Parameters: "install {#MyAppShortName} {app}\winstart-server.bat";
Flags: runhidden runascurrentuser;
Filename: "{app}\{#NSSM}";
Parameters: "set {#MyAppShortName} AppStdin {app}\{#MyAppShortName}.log";
Flags: runhidden runascurrentuser;
Filename: "{app}\{#NSSM}";
Parameters: "set {#MyAppShortName} AppStdout {app}\{#MyAppShortName}.log";
Flags: runhidden runascurrentuser;
Filename: "{app}\{#NSSM}";
Parameters: "set {#MyAppShortName} AppStderr {app}\{#MyAppShortName}.log";
Flags: runhidden runascurrentuser;
Filename: "{app}\{#NSSM}";
Parameters: "set {#MyAppShortName} AppRotateFiles 1";
Flags: runhidden runascurrentuser;
Filename: "{sys}\net.exe";
Parameters: "start {#MyAppShortName}";
Flags: runhidden runascurrentuser;运行时来自安装程序的日志提示如下所示:
2015-09-07 20:41:22.616 -- Run entry --
2015-09-07 20:41:22.616 Run as: Current user
2015-09-07 20:41:22.616 Type: Exec
2015-09-07 20:41:22.616 Filename: C:\Monitor\nssm.exe
2015-09-07 20:41:22.616 Parameters: install Monitor C:\Monitor\winstart-server.bat
2015-09-07 20:41:24.262 Process exit code: 5
2015-09-07 20:41:24.262 -- Run entry --
2015-09-07 20:41:24.262 Run as: Current user
2015-09-07 20:41:24.262 Type: Exec
2015-09-07 20:41:24.262 Filename: C:\Monitor\nssm.exe
2015-09-07 20:41:24.262 Parameters: set Monitor AppStdin C:\Monitor\Monitor.log
2015-09-07 20:41:24.299 Process exit code: 3
2015-09-07 20:41:24.299 -- Run entry --
2015-09-07 20:41:24.299 Run as: Current user
2015-09-07 20:41:24.299 Type: Exec
2015-09-07 20:41:24.299 Filename: C:\Monitor\nssm.exe
2015-09-07 20:41:24.299 Parameters: set Monitor AppStdout C:\Monitor\Monitor.log
2015-09-07 20:41:24.365 Process exit code: 3
2015-09-07 20:41:24.365 -- Run entry --
2015-09-07 20:41:24.365 Run as: Current user
2015-09-07 20:41:24.365 Type: Exec
2015-09-07 20:41:24.365 Filename: C:\Monitor\nssm.exe
2015-09-07 20:41:24.365 Parameters: set Monitor AppStderr C:\Monitor\Monitor.log
2015-09-07 20:41:24.415 Process exit code: 3
2015-09-07 20:41:24.415 -- Run entry --
2015-09-07 20:41:24.415 Run as: Current user
2015-09-07 20:41:24.415 Type: Exec
2015-09-07 20:41:24.415 Filename: C:\Monitor\nssm.exe
2015-09-07 20:41:24.415 Parameters: set Monitor AppRotateFiles 1
2015-09-07 20:41:24.458 Process exit code: 3正如您所看到的,第一个taks失败并返回5,然后其他taks提示3,因为服务未注册。
有什么线索吗?非常感谢您的提前通知。
发布于 2015-09-08 14:34:49
我认为问题在于windows已经有了一个叫做"Monitor“(sys/DRIVERS/monitor)的服务。尝试将您的服务名称更改为其他名称!
https://stackoverflow.com/questions/32449130
复制相似问题