• bat、dos控制多个后台程序启动


    目录:

    一、背景

    二、需求分析

    三、实现方法

    四、常见问题

    ==================================================================

    正文:

    一、背景

    有一个windows项目,需要打开多个cmd.exe窗口来启动众多子服务。每次手工打开cmd.exe窗口,并执行相同的命令行,不仅效率低下,而且长时间没有启动忘了步骤,还容易出错。

    二、需求分析

    此时需要一个一键启动的方式来完成操作。

    1、windows下,bat脚本可以执行编排好的命令。

    2、一个bat脚本对应一个cmd.exe窗口,就考虑编写多个bat脚本,再由一个总bat脚本来调用。

    3、ping命令可以用了拉开启动的时间间隔。

    ping  -n   6   127.0.0.1  >nul 
    

    三、实现方法

    1、新建5个分散脚本:r0.bat、r1.bat、r2.bat、r3.bat、r4.bat

    分散脚本中的内容可以改成你自己的命令。脚本数量也可以修改。

    r0.bat中

    mongod --port 65521 --dbpath d:/mongodb_data --auth
    

      

    r1.bat中

    ping -n 6 127.0.0.1 >nul
    workon xunfeng_py2 && python -V && python web.py
    

      

    r2.bat中

    ping -n 7 127.0.0.1 >nul
    workon xunfeng_py2 && python -V && python aider/aider.py
    

      

    r3.bat中

    ping -n 8 127.0.0.1 >nul
    workon xunfeng_py2 && python -V && python nascan/nascan.py
    

      

    r4.bat中

    ping -n 9 127.0.0.1 >nul
    workon xunfeng_py2 && python -V && python vulscan/vulscan.py
    

    2、新建总控制bat:run.bat

    run.bat中:

    start r0.bat
    start r1.bat
    start r2.bat
    start r3.bat
    start r4.bat
    
    ::说明,以上bat是在做如下事项。各个脚本中ping的目的是在拉开启动时间间隔。
    ::start mongod --port 65521 --dbpath d:/mongodb_data --auth
    ::workon xunfeng_py2 && python -V && python web.py
    ::workon xunfeng_py2 && python -V && python aider/aider.py
    ::workon xunfeng_py2 && python -V && python nascan/nascan.py
    ::workon xunfeng_py2 && python -V && python vulscan/vulscan.py
    

     

    3、测试

    双击run.bat查看运行效果。

    结果启动了5个cmd.exe窗口,服务运行成功。

     

    四、常见问题

    1、Unix文件和windows文件有区别

    如果启动总bat不能执行所有命令,有可能是Unix格式的文件,用notepad打开,双击右下角Unix的标记,修改为windows格式的文件。

    2、dos命令连续执行命令连接符

    &&  表示前一个命令执行成功后执行后一个命令

    workon xunfeng_py2 && python -V && python web.py
    

    3、bat启动新cmd.exe

    start  默认启动一个新的cmd.exe。

    ::     双冒号无空格,表示bat中的注释。

  • 相关阅读:
    14、Java并发性和多线程-Java ThreadLocal
    15、Java并发性和多线程-线程通讯
    12、Java并发性和多线程-Java同步块
    11、Java并发性和多线程-Java内存模型
    Java中原始数据类型存放位置理解
    10、Java并发性和多线程-线程安全与不可变性
    9、Java并发性和多线程-线程安全与共享资源
    8、Java并发性和多线程-静态条件与临界区
    7、Java并发性和多线程-如何创建并运行线程
    4、Java并发性和多线程-并发编程模型
  • 原文地址:https://www.cnblogs.com/andy9468/p/12603877.html
Copyright © 2020-2023  润新知