正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史记录

版本 1 当前 »

如报表,启动脚本在:web/startReportSys.bat,该bat内容:

cd /d %~dp0

.\jre\bin\java -jar .\reportsys-1.0.jar


在服务管理器中配置了ExeName为java reportsys,服务管理器将会检测启动命令中,是不是包含java和reportsys-1.0两个关键词。实际上检测失败了:

<Server Name="报表服务" ExeName="java reportsys-1.0" ExeDir="" StartCmd="../web/startReportSys.bat" StopCmd="" DelaySec="0" RestartAt="" ShowConsole="0" AutoRestart="1" Parameter="" Enable="1" />


原因:

服务管理器在windows下,会遍历所有的进程,得到进程名和启动命令行。

如果进程名称和配置的ExeName完全相等(不扩展名,且不区分大小写,如进程名称可能是pkmemdb.exe,配置文件配置了pkmemdb,则两者完全匹配),则返回进程号

如果命令行按照“. /\”这4中分割符分割后,形成各个字符子串(如:.\jre\bin\java -jar .\reportsys-1.0.jar,会分割为:jre,bin,java,jar,reportsys,1,0,jar这几个部分进行比较)。如果这些子串和配置的ExeName中以空格隔开的子串完全相等,则认为匹配

  • 无标签