介绍
进程管理器是eview的必配工具
- 程序名称:pkservermgr
- 位置:eview-server\bin
- 配置文件:config/pkservermgr.xml
主要功能
- 启动所有eview必须启动的进程
- 关闭所有eview需要关闭的进程
- 注册为windows服务
- 注销为windows服务
启动方式
- 双击eview-server\bin\pkservermgr.exe
- 当已注册为windows服务后
- 注册为服务后,开机运行
- 或者在windows服务管理器中手工启动和停止
配置文件主要参数
样例:
<?xml version="1.0" encoding="GB2312" standalone="yes" ?>
<Servers CheckPeriod="60" desc="AutoRestart;DelaySec(seconds);ShowConsole;ExeName,ExeDir;StartCmd;StopCmd;DelaySec;Exclude;RestartAt:Day=1/1;Hour=*;Minute=*">
<Server Name="内存数据库服务" ExeName="pkmemdb" ExeDir="" StartCmd="start_pkmemdb.bat" StopCmd="" DelaySec="0" RestartAt="" ShowConsole="0" AutoRestart="1" Enable="1" auto_generate="1" />
<Server Name="本地节点处理服务" ExeName="pknodeserver" ExeDir="" StartCmd="" StopCmd="" DelaySec="2" RestartAt="" ShowConsole="0" AutoRestart="1" Enable="1" auto_generate="1" />
<Server Name="MQTT服务" ExeName="pkmqtt" ExeDir="" StartCmd="start_pkmqtt.bat" StopCmd="" DelaySec="0" RestartAt="" ShowConsole="0" AutoRestart="1" Enable="1" auto_generate="1" />
<Server Name="联动服务" ExeName="pklinkserver" ExeDir="" StartCmd="" StopCmd="" DelaySec="0" RestartAt="" ShowConsole="0" AutoRestart="1" Enable="1" auto_generate="1" />
<Server Name="视频服务" ExeName="pkvideoserver" ExeDir="" StartCmd="" StopCmd="" DelaySec="0" RestartAt="" ShowConsole="0" AutoRestart="1" Enable="1" auto_generate="1" />
<Server Name="关系数据库转储服务" ExeName="pkdbtransferserver" ExeDir="" StartCmd="" StopCmd="" DelaySec="0" RestartAt="" ShowConsole="0" AutoRestart="1" Enable="1" auto_generate="1" />
<Server Name="Modbus发布服务" ExeName="pkmodserver" ExeDir="" StartCmd="" StopCmd="" DelaySec="0" RestartAt="" ShowConsole="0" AutoRestart="1" Enable="1" auto_generate="1" />
<Server Name="通讯监控工具服务" ExeName="pkcommonitorserver" ExeDir="" StartCmd="" StopCmd="" DelaySec="0" RestartAt="" ShowConsole="0" AutoRestart="1" Enable="1" auto_generate="1" />
<Server Name="Web服务" ExeName="eviewweb" ExeDir="" StartCmd="..\web\startWeb.bat" StopCmd="..\web\stopWeb.bat" DelaySec="0" RestartAt="" ShowConsole="0" AutoRestart="0" Enable="1" auto_generate="1" />
<Server Name="modbustcp" ExeName="modbustcp" ExeDir="drivers\modbustcp" StartCmd="" StopCmd="" DelaySec="0" RestartAt="" ShowConsole="0" AutoRestart="1" Enable="1" auto_generate="1" />
<Server Name="modbusrtu" ExeName="modbusrtu" ExeDir="drivers\modbusrtu" StartCmd="" StopCmd="" DelaySec="0" RestartAt="" ShowConsole="0" AutoRestart="1" Enable="1" auto_generate="1" />
<Server Name="simenss7drv" ExeName="simenss7drv" ExeDir="drivers\simenss7drv" StartCmd="" StopCmd="" DelaySec="0" RestartAt="" ShowConsole="0" AutoRestart="1" Enable="1" auto_generate="1" />
<Server Name="pingdrv" ExeName="pingdrv" ExeDir="drivers\pingdrv" StartCmd="" StopCmd="" DelaySec="0" RestartAt="" ShowConsole="0" AutoRestart="1" Enable="1" auto_generate="1" />
<Server Name="infoboarddrv" ExeName="infoboarddrv" ExeDir="drivers\infoboarddrv" StartCmd="" StopCmd="" DelaySec="0" RestartAt="" ShowConsole="0" AutoRestart="1" Enable="1" auto_generate="1" />
<Server Name="wirelessdrv" ExeName="wirelessdrv" ExeDir="drivers\wirelessdrv" StartCmd="" StopCmd="" DelaySec="0" RestartAt="" ShowConsole="0" AutoRestart="1" Enable="1" auto_generate="1" />
<Server Name="broadcastdrv" ExeName="broadcastdrv" ExeDir="drivers\broadcastdrv" StartCmd="" StopCmd="" DelaySec="0" RestartAt="" ShowConsole="0" AutoRestart="1" Enable="1" auto_generate="1" />
<Server Name="phonedrv" ExeName="phonedrv" ExeDir="drivers\phonedrv" StartCmd="" StopCmd="" DelaySec="0" RestartAt="" ShowConsole="0" AutoRestart="1" Enable="1" auto_generate="1" />
<Server Name="dwdrv" ExeName="dwdrv" ExeDir="drivers\dwdrv" StartCmd="" StopCmd="" DelaySec="0" RestartAt="" ShowConsole="0" AutoRestart="1" Enable="1" auto_generate="1" />
<Server Name="dimmerdrv" ExeName="dimmerdrv" ExeDir="drivers\dimmerdrv" StartCmd="" StopCmd="" DelaySec="0" RestartAt="" ShowConsole="0" AutoRestart="1" Enable="1" auto_generate="1" />
<Server Name="speedboarddrv" ExeName="speedboarddrv" ExeDir="drivers\speedboarddrv" StartCmd="" StopCmd="" DelaySec="0" RestartAt="" ShowConsole="0" AutoRestart="1" Enable="1" auto_generate="1" />
<Server Name="报表服务" ExeName="reportsys" ExeDir="" StartCmd="..\reportsys\web\startReportSys.bat" StopCmd="" DelaySec="0" RestartAt="" ShowConsole="0" AutoRestart="1" Enable="1" auto_generate="0" />
<Server Name="视频分析服务nginx" ExeName="nginx" ExeDir="" StartCmd="..\..\videotraffic-front\web\nginx-web\startNginx.bat" StopCmd="" DelaySec="0" RestartAt="" ShowConsole="0" AutoRestart="1" Enable="1" auto_generate="0" />
<Server Name="视频分析前端服务" ExeName="traffictedect" ExeDir="" StartCmd="..\..\videotraffic-front\web\start.bat" StopCmd="" DelaySec="0" RestartAt="" ShowConsole="0" AutoRestart="1" Enable="1" auto_generate="0" />
</Servers>
参数说明
- Servers节点:
- CheckPeriod:定时检测本进程管理器管理的所有进程(下面Server节点)的周期,单位:秒。
- AutoRestart为1的情况下,如果进程异常停止或被手工关闭,则自动启动该进程节点
- CheckPeriod:定时检测本进程管理器管理的所有进程(下面Server节点)的周期,单位:秒。
- Server节点
- Name:显示在服务管理器上的名称
- ExeName:启动程序名称,以及检测程序是否已经启动的标准
- 作为检测程序是否启动的检验字符串。
- 检测方法是启动参数中,需要包含这个字符串。
- 可以用空格隔开多个字符串,则启动参数中,必须同时包含这几个字符串则表示程序已经启动
- 作为启动程序的名称
- 当StartCmd为空字符串时,表示启动的程序名称,windows下为,如:pkmemdb.exe
- 当StartCmd不为空,不做为启动程序的名称,仅表示检测程序是否已经启动的标准
- 作为检测程序是否启动的检验字符串。
- ExeDir:进程启动的当前目录
- 当不为空时,表示该目录为程序启动的当前目录
- 为空,表示程序启动的当前目录为bin目录
- StartCmd:启动脚本的命令。往往是脚本命令,windows下为xxxx.bat,linux下是xxxx.sh
- 不为空时,ExeName不做为作为启动进程名称,本脚本才作为启动进程的程序
- StopCmd:停止脚本的名称。用于非本系统自带进程,可能需要。下述情况需要使用,且应写入正常的停止StartCmd的脚本:
- 有些非eview的进程强制停止会异常
- 或者导致数据丢失
- 或者下次无法启动
- DelaySec:启动前延迟时间,单位秒。0或空表示无延迟
- RestartAt:定时重启本进程的时间。类似cron表达式,能够在指定日,指定小时和分钟重启进程。示例:RestartAt:Day=1/1;Hour=0;Minute=0。Day和Hour、Minute参数意义如下:
- 参数X/Y。X表示:X表示起始时间开始触发,然后每隔固定时间Y触发一次
- Day=1/3,表示1号开始触发,每3天触发一次
- 参数*,表示匹配该域的任意值。假如在Minutes域使用*, 即表示每分钟都会触发事件
- Hour=*,表示每小时都触发
- Minute=*,表示每分钟都触发
- 参数X。X表示起始时间触发
- Hour=3,表示每天凌晨3点触发1次
- 示例:
- Day=1/1;Hour=1;Minute=5 每天凌晨1点5分触发一次
- 参数X/Y。X表示:X表示起始时间开始触发,然后每隔固定时间Y触发一次
- ShowConsole:是否显示控制台黑窗口。1表示显示,0表示不显示
- AutoRestart:程序被关闭或异常终止后,是否自动启动
- 如果为1,则检查周期为Servers节点的CheckPeriod(未配置为30秒)。当到周期检查时,发现进程未启动(通过本节点的ExeName检测,见上面ExeName节点描述),则会启动
- Enable:为1表示启动本进程,为0则表示不启动本进程
- auto_generate:是否自动生成
- 为1表示由插件自动创建,会在服务管理器启动时,先删除奔向,再有插件生成
- 缺省值为0
- 为0表示不自动生成,根据本配置加载参数和启动程序
- StartFirst:是否在启动进程管理器后,且由插件参数生成前,启动该程序
- 1(缺省值为1),表示在启动进程管理器后,且由插件参数生成前,启动该程序
- 0,表示插件参数生成后再启动本程序
- 对于有些程序,如关系数据库mysql启动,因为插件需要读取该数据库,必须将该值设为1,且顺序放到前面
- Exclude:进程管理器排除在外,不需要启动的进程
- 如果某个进程需要调试,不想自动启动,则可将Server节点名字改为Exclude,进程就不会被自动生成,也不会被启动
- 该节点的进程,可以通过手工启动。此时,进程管理器也不会启动或停止该进程
- 节点参数和Server节点相同。