无法通过nssm将批处理文件作为Windows服务运行

时间:2018-01-09 13:00:16

标签: batch-file windows-services nssm

我试图通过nssm运行批处理文件作为Windows服务,如果没有运行它将运行exe文件。 我的代码是从批处理文件

创建服务
 CALL "%~dp0nssm64.exe" install MyService "%~dp0test.bat"  
  CALL "%~dp0nssm64.exe" start MyService

(%~dp0是我正在运行的批处理文件的路径)

创建服务我没有问题,但是启动它。尝试手动启动时收到以下消息

enter image description here

在Windows事件查看器中,出现一条消息" Service MyService运行时间小于1500毫秒。重启将延迟256000毫秒。"

那么我应该如何解决这个问题呢?任何的想法? 谢谢

修改
这是批处理文件代码:

tasklist /FI "IMAGENAME eq SomeEXE.exe" 2>NUL | find /I /N "SomeEXE.exe">NUL
if "%ERRORLEVEL%"=="0" echo Program is running
if "%ERRORLEVEL%"=="1" start "" "%~dp0SomeEXE.exe"

2 个答案:

答案 0 :(得分:0)

以下是我编写批处理文件的方法:

@TaskList /NH /FI "ImageName eq SomeEXE.exe"|Find /I "SomeEXE.exe">Nul&&(
    @Echo Program is running)||@Start "" "%~dp0SomeEXE.exe"

...和我的评论中的NSS命令:

"%~dp0nssm64.exe" install MyService "%~dp0test.bat">Nul 2>&1&&"%~dp0nssm64.exe" Start MyService

答案 1 :(得分:0)

我刚刚遇到了几乎相同的错误。我有一个启动Java应用程序的批处理文件。

批处理文件中的执行行为:

start javaw -jar "%APP_HOME%\lib\app.jar" %*

我只是通过删除“开始”来修复它。没有更多了解原因的信息,但这对我有用。