Python 用一个脚本来控制另一个脚本的运行、关闭

7 篇文章 0 订阅

1、一开始按照网上教程,使用subprocess来实现另外一个脚本的运行和关闭,但是这个脚本在连续运行的时候不容易返回数据,判断脚本运行的状态

2、使用笨方法,用os.system运行脚本,使用os.kill(pid)杀死进程的方法关闭脚本的运行,这样就可以实现在一个脚本里面控制其他脚本的开启和运行了。当前这个方法在linux系统,如ubuntu18.04中跑,不存在问题

代码样例:

需要运行的脚本---run.py


import time
count=0
con=True
while con:
    now time=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))
    count+=1
    print(count,now_time)
    time.sleep(1)

写的控制运行脚本的脚本代码---control.py

import os,signal
import time

def get_now_time():
    # 获取当前的本地时间
    now_time=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))
    return now_time

def kill(pid):
    print('pid',pid)
    # pgid=os.getpgid(pid)
    # print(pgid)
    # a = os.killpg(pgid,signal.SIGKILL)
    a = os.kill(pid,signal.SIGKILL)
    print('已杀死pid为%s的进程, 返回值是:%s' % (pid, a))

def kill_target(target):
    cmd_run="ps aux | grep {}".format(target)
    out=os.popen(cmd_run).read()
    for line in out.splitlines():
        print(line)
        if '另外判断杀死进行所在的路径' in line:
            pid = int(line.split()[1])
            kill(pid)
# 建议在运行命令后面加上&符号,似乎是以另一个线程跑
os.system('python ./run.py &') 
       
while True:
    # 关闭
    if some_condition:
        print('暂停')
        kill_target('run.py')
    # 打开
    if some_else_condition:
        os.system('python ./run.py &')

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云金杞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值