介绍

进程管理器是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="30" desc="AutoRestart;DelaySec(seconds);ShowConsole;ExeName,ExeDir;StartCmd;StopCmd;DelaySec;Exclude;RestartAt:Day=1/1;Hour=*;Minute=*">

<!--Server Name="Notepad" ExeName="Notepad.exe" ExeDir="c:\windows\system32" RestartAt="Day=1/1;Hour=*;Minute=*"/→
<Server Name="系统自用mysql数据库" ExeName="pkmysqld" ExeDir="" StartCmd="start_pkmysql.bat" StopCmd="stop_pkmysql.bat" DelaySec="0" RestartAt="" ShowConsole="0" AutoRestart="1" Enable="1" StartFirst="1"/>
<Server Name="内存数据库服务" ExeName="pkmemdb" ExeDir="" StartCmd="start_pkmemdb.bat" StopCmd="" DelaySec="10" RestartAt="" ShowConsole="0" AutoRestart="1" Enable="1" StartFirst="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" />

<!-- <Exclude ExeName="modbustcp"/> -->

</Servers>

参数说明

  • Servers节点:
    • CheckPeriod:定时检测本进程管理器管理的所有进程(下面Server节点)的周期,单位:秒。
      • AutoRestart为1的情况下,如果进程异常停止或被手工关闭,则自动启动该进程节点
  • Server节点
    • Name:显示在服务管理器上的名称
    • ExeName:启动程序名称,以及检测程序是否已经启动的标准
      1. 作为检测程序是否启动的检验字符串。
        • 检测方法是启动参数中,需要包含这个字符串。
        • 可以用空格隔开多个字符串,则启动参数中,必须同时包含这几个字符串则表示程序已经启动
      2. 作为启动程序的名称
        1. 当StartCmd为空字符串时,表示启动的程序名称,windows下为,如:pkmemdb.exe
        2. 当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分触发一次
    • ShowConsole:是否显示控制台黑窗口。1表示显示,0表示不显示
    • AutoRestart:程序被关闭或异常终止后,是否自动启动
      • 如果为1,则检查周期为Servers节点的CheckPeriod(未配置为30秒)。当到周期检查时,发现进程未启动(通过本节点的ExeName检测,见上面ExeName节点描述),则会启动
    • Enable:为1表示启动本进程,为0则表示不启动本进程
    • auto_generate:是否自动生成
      • 为1表示由插件自动创建,会在服务管理器启动时,先删除奔向,再有插件生成
      • 缺省值为0
      • 为0表示不自动生成,根据本配置加载参数和启动程序
    • StartFirst:是否在启动进程管理器后,且由插件参数生成前,启动该程序
      • 1(缺省值为1),表示在启动进程管理器后,且由插件参数生成前,启动该程序
      • 0,表示插件参数生成后再启动本程序
      • 对于有些程序,如关系数据库mysql启动,因为插件需要读取该数据库,必须将该值设为1,且顺序放到前面
    • WaitDBSecAfterStart:启动后,等待数据库连接(配置在config/db.conf中)前的等待超时秒数。如果连接成功,则立即返回
    • DelaySecAfterStart:启动后的延时时间
  • Exclude:进程管理器排除在外,不需要启动的进程
    • 如果某个进程需要调试,不想自动启动,则可将Server节点名字改为Exclude,进程就不会被自动生成,也不会被启动
    • 该节点的进程,可以通过手工启动。此时,进程管理器也不会启动或停止该进程 
    • 节点参数和Server节点相同。
    • 示例:<Exclude ExeName="modbustcp"/>
  • 无标签