首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何结束一个不返回的python子进程?

在Python中,可以使用subprocess模块来创建和管理子进程。当一个子进程不返回时,可以通过以下步骤来结束它:

  1. 导入subprocess模块:import subprocess
  2. 创建子进程:process = subprocess.Popen(args, shell=True)
    • args是一个字符串,表示要执行的命令。例如,args = "python script.py"表示执行名为script.py的Python脚本。
    • shell=True表示在shell中执行命令。
  • 等待子进程结束:process.wait()
    • wait()方法会阻塞当前进程,直到子进程结束。
  • 结束子进程:process.terminate()
    • terminate()方法会发送一个终止信号给子进程,使其结束运行。

完整的代码示例:

代码语言:txt
复制
import subprocess

# 创建子进程
process = subprocess.Popen("python script.py", shell=True)

# 等待子进程结束
process.wait()

# 结束子进程
process.terminate()

在上述代码中,script.py是要执行的Python脚本。当子进程执行完毕后,wait()方法会返回,然后使用terminate()方法结束子进程。

请注意,以上代码只是一个示例,实际使用时需要根据具体情况进行调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

python进程进程进程间共享和共享全局变量实例

Python进程默认不能共享全局变量 主进程进程是并发执行进程之间默认是不能共享全局变量(进程不能改变主进程中全局变量值)。...import multiprocessing import time import os datalist=['+++'] #全局变量,主进程进程是并发执行,他们不能共享全局变量(进程不能改变主进程中全局变量值...num.value=10.78 #进程改变数值值,主进程跟着改变 if __name__=="__main__": num=multiprocessing.Value("d",10.0) #...(主进程进程都是用一个value) print(num.value) p=multiprocessing.Process(target=func,args=(num,)) p.start...多进程进程进程间共享和共享全局变量实例就是小编分享给大家全部内容了,希望能给大家一个参考。

4.8K20
  • 如何在Bash中等待多个子进程完成,并且当其中任何一个进程以非零退出状态结束时,使主进程返回一个非零退出码?

    问题 如何在 Bash 脚本中等待该脚本启动多个子进程完成,并且当这其中任意一个进程以非零退出码结束时,让该脚本也返回一个非零退出码? 简单脚本: #!.../bin/bash for i in `seq 0 9`; do calculations $i & done wait 上述脚本将会等待所有 10 个被创建进程结束,但它总会给出退出状态 0...我应该如何修改这个脚本,使其能检测到被创建进程退出状态,并且当任何进程以非零代码结束时,让脚本返回退出码 1?.../usr/bin/env bash # 这是一个特殊 sleep 函数,它将睡眠秒数作为"错误代码" # 或"返回代码"返回,以便我们可以清楚地看到,实际上 # 我们在每个进程完成时确实获取了它返回代码...# 存储上一个进程启动 pid echo " pid = ${pids[$i]}" done for pid in $pids; do wait $pid rc=$?

    10200

    python让函数返回结果方法

    函数返回值简介 1、简单介绍print和return区别,print仅仅是打印在控制台,而return则是将return后面的部分作为返回值:作为函数输出,可以用变量接走,继续使用该返回值做其它事。...2、函数需要先定义后调用,函数体中return语句结果就是返回值。如果一个函数没有reutrn语句,其实它有一个隐含return语句,返回值是None,类型也是’NoneType’。...def func(x,y): num = x + y return print(func(1,2)) #上面代码输出结果为:None 从上面例子可以看出print( )只是起一个打印作用,函数具体返回什么由...return决定 return语句作用: 结束函数调用、返回值 指定返回值与隐含返回值: 1、函数体中return语句有指定返回值时返回就是其值 2、函数体中没有return语句时,函数运行结束会隐含返回一个...: 返回简单值 下面来看一个函数,它接受名和姓并返回整洁姓名: def get_formatted_name(first_name, last_name): full_name = first_name

    6.3K41

    python 在threading中如何处理主进程线程关系

    1.使用join函数后,主进程会在调用join地方等待线程结束,然后才接着往下执行。...这里创建了5个线程,每个线程随机等待1-10秒后打印退出;主线程分别等待5个线程结束。最后结果是先显示各个子线程,再显示主进程结果。 2....如果使用setDaemon函数,则与join相反,主进程结束时候不会等待线程。...这里设置主进程为守护进程,当主进程结束时候,线程被中止 运行结果如下: #python testsetDaemon.py This is the end of main thread. 3...秒 2019-10-06 14:17:25,671 【 7412 】 MainProcess 进程花费时间:2.9418249130249023秒 以上这篇python 在threading中如何处理主进程线程关系就是小编分享给大家全部内容了

    2.8K10

    python 从subprocess运行进程中实时获取输出

    起因是这样,c++程序开发后 功能号和指令,校验需要人工去看对照二进制代码,量大还费力, 于是打算利用python 去调用 c++程序去校验指令, 首先要做就是用python 获取c++程序...printf() 或cout 输出; 环境linux python 3.8.x 以下代码实现,获取子程序输出 command='....linux shell指令,如果要用shell 指令如ls 要将false 变成true, 通过指定stderr=subprocess.STDOUT,将子程序标准错误输出重定向到了标准输出,以使我们可以直接从标准输出中同时获取标准输出和标准错误信息...p.poll() 返回进程返回值,如果为None 表示 c++进程还未结束. p.stdout.readline() 从 c++标准输出里获取一行....参考文章1 pythonsubprocess.Popen()使用 参考文章 2 python 从subprocess运行进程中实时获取输出

    10.4K10

    PythonDjango框架实现数据库查询(返回QuerySet方法)

    python manage.py makemigrations app_name[应用名称] python manage.py migrate app_name[应用名称] 迁移成功后可以进行以下操作咯...~ 二、介绍返回QuerySet方法: 方法名 介绍 get() 获取单个对象 create() 创建对象 bulk_create() 批量创建对象 get_or_create() 查询对象,若没有找到则创建新对象...4.如果找不到对象,get_or_create()将会实例化并保存一个对象,返回一个由新对象以及True组成元组。...该方法返回一个由(object, created)组成元组,元组中object是一个创建或者是被更新对象, created是一个标示是否创建了新对象布尔值(true(表示创建成功)|false...以上这篇PythonDjango框架实现数据库查询(返回QuerySet方法)就是小编分享给大家全部内容了,希望能给大家一个参考。

    2.6K30

    如何在父进程中读取(外部)进程标准输出和标准错误输出结果

    最近接手一个小项目,要求使用谷歌aapt.exe获取apk软件包中信息。依稀记得去年年中时,有个同事也问过我如何获取被调用进程输出结果,当时还研究了一番,只是没有做整理。...但是,实际情况并不是我们想那么简单。比如我文前提到问题:别人提供了一个Console控制台程序,我们将如何获取其执行输出结果呢?...而其他参数我们可能就保守选择了NULL。(遥想2年前,我就是在这个API上栽了一个大大跟头。)         本文,我们将关注一个可能很少使用参数lpStartupInfo。...它是我们启动进程时,控制进程启动方式参数。...我们之后将hWrite交给我们创建进程,让它去将信息写入管道。而我们父进程,则使用hRead去读取进程写入管道内容。

    3.9K10

    如何查找一个域名域名记录

    起因是在Cloudflare和DNSPod添加域名时系统会扫描待添加域名域解析记录,感觉很神奇。方法一:穷举/使用字典通过穷举N位数域,例如从000到zzz,找到部分子域。...通过常用域字典,例如www、server、mail、wap、dl,找到部分子域。不管是穷举还是跑字典,都需要一条条向DNS服务器请求来获得解析情况。...这个操作除了用软件爆破外还可以通过在线网站完成,百度就能找到不少这类网站,例如:在线域名扫描-YoungxjTools (yum6.cn)。缺点:如果子域字数多且不在字典里就没法查到了。...方法二:通过查询HTTPS/SSL证书数据证书授权机构有一个叫证书透明度(Certificate Transparency)项目,会把每个SSL/TLS证书发布到公共日志中。...我在腾讯云免费申请TrustAsiaSSL证书通过上面那个crt.sh网站都能查到,但是其他证书机构/付费证书能不能查到就不清楚了。

    8K10

    Python程序中创建进程时对环境变量要求

    首先,来看下面一段代码,在主进程中重新为os.environ赋值,但在进程中并不会起作用,进程中使用仍是系统全部环境变量。 ? 运行结果: ?...在Python中,为变量重新赋值实际上是修改了变量引用,这适用于任意类型变量。对于列表、字典、集合以及类似的可变类型对象,可以通过一定形式改变其中元素引用而不改变整个对象引用。...os.environ是一个类似于字典数据结构,这里以字典为例,字典可以通过pop()、popitem()、clear()、update()以及下标赋值等原地操作方法或操作来修改其中元素而不影响字典对象引用...在主进程中清空了所有环境变量,然后创建进程失败并引发了异常。...以Windows操作系统为例,创建进程时会调用API函数CreateProcessA,该函数要求环境变量至少要包含SYSTEMROOT,否则调用另一个函数CryptAcquireContext时会失败

    2.3K30

    如何带走一个“鲜活”进程 | Linux 应急响应

    简介 拷贝取证只是一部分人需求,可能是取证人员,也可能是需要做交接应急人员等 这篇文章从各种角度探索拷贝取证方法,并通过组合拳完成对一个进程拷贝 虚拟化平台 使用自带虚拟化快照功能 直接把整个系统打包带走.../shell.elf & 反弹木马进程号 1267 控制主机 Kali Linux 接收到返回shell 新开一个ssh连接,连接被害主机,安装 criu 在受害主机上使用 criu 对 pid...关闭受害主机,Kali Linux 保持监听 尝试恢复反弹shell进程 还原失败,并且当前终端输入字符已经无法看见了 再次启动一个ssh 连接,多次尝试恢复进程,这次 echo 123 并且睡眠...以上三步都是本文详细讲述过内容,所以直接简述 新建反弹shell进程 关机 -> 全盘拷贝 -> 新建虚拟机 -> 恢复 PS:这里有一个问题,恢复后系统IP不会是原来IP了,...python3-pip // 升级pip3 pip3 install --upgrade pip // 安装部分程序 sudo apt install python3-testresources

    1.6K40

    【面试系列】如何设计一个崩溃核酸系统?

    前面提到过,哪怕按2000万次访问集中在1小时内完成这个最苛刻指标,每秒也只需服务5556人。 按每人需要返回2K数据计算(1k都绰绰有余!...换句话说,不需要任何特殊技术,20台16G内存虚拟机实例,简单在数组中访问下标(或者二分查找)、封装返回,以及100M对外服务总带宽,就足以支持10亿用户每小时2000万次查询——性能大有盈余。...万一虚拟机本身不够稳定、或者有人连二分查找程序都能写崩溃呢…… 这时候,我们可以另外搞一些虚拟机作为备份;这些虚拟机可以使用现成zookeeper管理,一个节点坏了,另一个节点可以马上顶上…… 另外就是数据更新问题...但是呢,我曾经在类似的公司做过事,也知道对接甲方水平…… 所以,这样一个“庞大”“复杂”“史无前例”系统,最终如果按我设计,顶天两三千行C代码以及两三千行js代码就交差了——你猜甲方会不会掏钱?...,这都不是甲方懂不懂问题了;而是,就这么几行代码,你想让他们掏多少?他们怎么向上面交代?

    95120

    如何Python 中终止 Windows 上运行进程

    在这篇综合性文章中,我们将探讨各种方法来完成使用 Python 终止 Windows 上运行进程任务。...通过利用“os”模块、“psutil”库和“流程”模块,我们将为自己配备一个多功能工具包来解决这项势在必行任务。...方法1:使用多功能“os”模块 “os”模块是Python与操作系统交互基石,拥有丰富功能。其中,“system()”函数提供了一个执行操作系统命令网关。...方法3:释放“流程”模块力量 Python 进程”模块赋予我们生成新进程能力,与它们输入/输出/错误管道建立连接,并检索它们返回代码。...“psutil”库作为一个强大工具出现,为我们提供了一个全面的、跨平台系统信息检索和过程操作解决方案。此外,“流程”模块解锁了新维度,使我们能够毫不费力地生成进程和执行命令。

    50630
    领券