• 转 python多个命令同时执行.sh


    1、背景是

    有三个脚本a.py, b.py, c.py
    三个都是爬虫,里面都是while(true)方式运行的,不会主动运行结束。

    每次启动他们,就需要:

    python a.py > logs/a.log
    python b.py > logs/b.log
    python c.py > logs/c.log
    

    2、上linux批处理:

    有点麻烦,想搞个批处理:

    #!/bin/sh
    python a.py > logs/a.log
    python b.py > logs/b.log
    python c.py > logs/c.log
    

    3、发现有问题

    运行发现只有一个python进程,看日志发现只有a运行了,b和c都没跑起来。
    估计因为shell是顺序执行的,a没执行完,所以不会去执行b和c,查了一下果然。

    4、同时运行方案

    不过shell也提供了一个同时运行多个命令的方式:&符号。

    于是修改为:

    #!/bin/sh
    python a.py > logs/a.log & python b.py > logs/b.log & python c.py > logs/c.log
    

    就可以同时运行三个脚本了。

    5、再加工一下

    再加工一下,启动前先停止所有py进程:

    #!/bin/sh
    ps -ef | grep python | cut -c 9-15| xargs kill -s 9
    python a.py > logs/a.log & python b.py > logs/b.log & python c.py > logs/c.log
    

    保存为restart.sh
    可执行权限:chmod +x restart.sh



    作者:老胡de博客
    链接:https://www.jianshu.com/p/0f72afb513ab
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 相关阅读:
    枚举类型总结
    正则表达式-Java
    java中Mongo
    cookie
    xsd解析
    水平分表的实现
    c#位运算小例子笔记
    c#设计模式之观察者模式(Observer Pattern)
    c#设计模式之代理模式(Proxy Pattern)
    .Net 数据缓存浅析
  • 原文地址:https://www.cnblogs.com/showker/p/11915575.html
Copyright © 2020-2023  润新知