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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

转 python多个命令同时执行.sh的更多相关文章

  1. python 对shell 命令的 执行 逻辑 在一台机器上执行另一台机器的命令; 跨节点 执行命令

    import os l = ['ssh a;scp /data/visitlog/*11* root@d:/data/mapReduceVisitorLog/'] # b c for i in l: ...

  2. python程序在命令行执行提示ModuleNotFoundError: No module named 'XXX' 解决方法

    在ide中执行python程序,都已经在默认的项目路径中,所以直接执行是没有问题的.但是在cmd中执行程序,所在路径是python的搜索路径,如果涉及到import引用就会报类似ImportError ...

  3. python中模拟进行ssh命令的执行

    在进行socket编程的时候,可以实现远程执行命令,然后返回相关的结果,但是这种...很容易就把服务器搞挂了. 在这里需要用到commands模块,commands模块中有一个方法为getstatus ...

  4. linux执行sh脚本文件命令

    linux执行sh脚本文件命令 很多时候需要多个命令来完成一项工作,而这个工作又常常是重复的,这个时候我们自然会想到将这些命令写成sh脚本,下次执行下这个脚本一切就都搞定了,下面就是发布代码的一个脚本 ...

  5. linux执行sh报错:$’\r’: 未找到命令的解决

    背景 执行.sh脚本时出现$'\r': 未找到命令, 原因 是因为命令直接从windows 复制过来导致的 解决 yum install dos2unix dos2unix **.sh 进行转换 再次 ...

  6. 在Linux命令行执行python命令

    在Linux的命令行执行python的某些命令: [root@centos7 ~]# echo "import sys ;print(sys.path)"|python3.6 [' ...

  7. python(或BAT脚本)自动执行adb shell以后的命令

    最近在用python做一个小工具,自动执行一些adb shell命令,使用subprocess.Popen来实现.   不过遇到个问题就是执行adb shell后就无法执行后面adb shell里的命 ...

  8. 数据仓库005 - 复习Linux shell命令 - crontab调度 sh脚本 后台执行 软连接

    一.crontab调度 对于linux 自带crontab而言,      xxx.sh的一般编写格式以#!/bin/bash 解释器开头,可在脚本中加入: date 但是,shell脚本执行 需要 ...

  9. Linux sh、source和.命令执行.sh文件的区别

    sh文件介绍 .sh为Linux的脚本文件,我们可以通过.sh执行一些命令,可以理解为windows的.bat批处理文件. 点命令 .命令和source是同一个命令,可以理解为source的缩写,简称 ...

随机推荐

  1. cloudera manager(CDH)实践

    cloudera manager 可以简化 Hadoop 的安装配置过程,自动在集群节点上安 装 hadoop 相关组件,创建用户,并管理各个组件服务.本手册以 cloudera manager 的 ...

  2. php连接mySql,加密函数

    连接MySQL mysql_connect(servername,username,password); 面向对象: <?php $servername = "localhost&qu ...

  3. 12.安装olny office服务---不成功

    安装olny office服务 在01.centos7环境准备的基础上安装olny office服务 参考博客:https://blog.csdn.net/networken/article/deta ...

  4. CentOS7.5安装python-pip报Error: Nothing to do解决方法

    python中的一个十分好用的包管理工具python-pip是我们使用python必不可少的一件工具.但是在CentOS7安装时候却报Error: Nothing to do: [root@bnsf- ...

  5. SHELL脚本编程基础知识

    SHELL脚本编程基础知识 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Linux之父Linus有一句话很经典:"Talk is cheap, show me the ...

  6. Django分表操作、聚合及FQ方法

    聚合 aggregate(*args, **kwargs) # 计算所有图书的平均价格 from django.db.models import Avg Book.objects.all().aggr ...

  7. K3 Cloud的数据中心加载异常处理

    以前一直是财务维护的K3  Cloud突然说不能登录,用的SQL 2008的数据库,运维也搞不定,找帮忙,因为是部署在阿里云上,上去看看数据库,这个K3数据库占了600多G,想看看这个表结构,就是打不 ...

  8. Spring boot集成Websocket,前端监听心跳实现

    第一:引入jar 由于项目是springboot的项目所以我这边简单的应用了springboot自带的socket jar <dependency> <groupId>org. ...

  9. formset的简单使用

    1.modelform class StudentStudyRecordModelForm(forms.ModelForm): class Meta: model = StudentStudyReco ...

  10. 关于C3P0-mySQL关于url的细节问题

    1.为url设置?useUnicode=true&characterEncoding=UTF-8 为了统一编码,我们会为数据库封装的实体类加上上面的那句话,但是C3P0数据库连接池是xml配置 ...