Windows srvany.exe不启动.bat文件
(操作系统:Windows 7) 我使用SC.EXE创建了一个Windows服务。此外,我还创建了必要的注册表项来指定应用程序路径(使用键参数) “应用程序”是一个.BAT文件,它设置了几个环境变量,然后调用Python脚本。当直接从CMD中运行.BAT文件时,我得到了正常的、期望的行为 使用服务管理器,我可以启动和停止服务(也可以使用直接从CMD发出的SC.EXE)。一切正常,没有任何警告、错误或任何其他内容(在事件日志中) BAT文件不会被执行。我仔细检查了应用程序路径,仔细检查了服务名称Windows srvany.exe不启动.bat文件,windows,batch-file,cmd,srvany,Windows,Batch File,Cmd,Srvany,(操作系统:Windows 7) 我使用SC.EXE创建了一个Windows服务。此外,我还创建了必要的注册表项来指定应用程序路径(使用键参数) “应用程序”是一个.BAT文件,它设置了几个环境变量,然后调用Python脚本。当直接从CMD中运行.BAT文件时,我得到了正常的、期望的行为 使用服务管理器,我可以启动和停止服务(也可以使用直接从CMD发出的SC.EXE)。一切正常,没有任何警告、错误或任何其他内容(在事件日志中) BAT文件不会被执行。我仔细检查了应用程序路径,仔细检查了服务名称
- 更正:实际执行BAT文件(从BAT文件中创建简单日志文件)。显然,不起作用的是将python.exe作为BAT文件中的最后一个命令执行。我无法验证python.exe生成的错误,因为我没有看到任何日志文件、事件日志条目
@ECHO OFF
REM ==========================================================================
REM ProcessIntergrationBridge Microsoft Windows Service Shell Script
REM ==========================================================================
SET CONSEQUOR_PIB_HOME=C:\opt\consequor\pib
SET CONSEQUOR_PIB_VERSION_DESIGNATOR=pib_b0100
SET CONSEQUOR_PIB_DATA=C:\var\opt\consequor\pib
SET CONSEQUOR_PIB_LOG=C:\var\opt\consequor\pib\log
SET CONSEQUOR_PIB_LOG_FILE=C:\var\opt\consequor\pib\log\pib.log
SET PYTHONPATH=C:\opt\consequor\pib\%CONSEQUOR_PIB_VERSION_DESIGNATOR%
SET PYTHONHOME=C:\opt\consequor\pib\python-runtime\win
SET PATH=%CONSEQUOR_PIB_HOME%\%CONSEQUOR_PIB_VERSION_DESIGNATOR%\bin;%CONSEQUOR_PIB_HOME%\python-runtime\win;CONSEQUOR_PIB_HOME%\python-runtime\win\DLLs;CONSEQUOR_PIB_HOME%\python-runtime\win\libs;CONSEQUOR_PIB_HOME%\python-runtime\win\Lib;%PATH%
SET CMD=%PYTHONHOME%\pythonw.exe %CONSEQUOR_PIB_HOME%\%CONSEQUOR_PIB_VERSION_DESIGNATOR%\%CONSEQUOR_PIB_VERSION_DESIGNATOR%\start_pib\pib_run_server.py debug
%CMD%
PIBD服务注册表项:(哦,Merde Alors-我还不能发布图片…-如果有人想看,我可以通过直接电子邮件发送…)
感谢您提供有关如何调试、修复、更改的任何提示—您知道
问候
Frank-已经花了几天时间试图理解Windows奥秘。您应该确保使用批处理文件作为参数调用
cmd.exe
,而不仅仅是调用批处理文件
类似于此:
C:\Windows\System32\cmd.exe /C C:\opt\consequor\pib\yourbatch.bat
我建议采取这种办法:
但是查看“SET PATH=”行,我发现一些变量没有正确表达(conseqor\u PIB\u HOME和其他变量中缺少前导的%),这可能是问题所在…根据您的建议,我将“Application”的注册表项更改为C:\Windows\System32\cmd.exe/C:\opt\conseqor\PIB\PIB\u b0100\pibsvc.bat。不幸的是,行为没有改变。srvany.exe已启动,但底层python.exe(从BAT文件调用)未启动。谢谢-这就成功了!会话0切换解决了该问题。