我试图通过nssm运行批处理文件作为Windows服务,如果没有运行它将运行exe文件。 我的代码是从批处理文件
创建服务 CALL "%~dp0nssm64.exe" install MyService "%~dp0test.bat"
CALL "%~dp0nssm64.exe" start MyService
(%~dp0是我正在运行的批处理文件的路径)
创建服务我没有问题,但是启动它。尝试手动启动时收到以下消息
在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"
答案 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" %*
我只是通过删除“开始”来修复它。没有更多了解原因的信息,但这对我有用。