python如何终止os.system调用的程序

python如何终止os.system调用的程序,第1张

建议用subprocess

因为如果你的程序不会自动停止,那么用ossystem(cmd),cmd会一直持续运行知道调用的程序返回结果。

subprocess可以开启一个子线程,在子线程里面调用,在你需要的时候就可以把这个子线程关掉,这样代码也更灵活

例如:

p = subprocessPopen("your command")

#todo

#anything you want

timesleep(10)

pkill()

这段代码就是在"your command"运行10秒以后,把它杀掉

那是肯定啊,你这是个循环,你的值一直小于10,于是就一直进行了

如果你是在终端下运行的话,直接ctrl+D可能就结束了,或者直接关闭终端就行, 如果你用其它程序的话,有可能关不掉,只能关机了

为了保证不杀掉所有的 pythonexe

osgetpid()

->2452

然后想办法获得这个 pid

可以利用 python 把这个pid 写入 pidbat 里)

taskkill /PID 2452

首先终止该进程

随后单击“开始”-“运行”,输入“servicesmsc”并回车;

看看有没有可疑服务。如果有,右击它并选“停止”。然后再次右击,选择“属性”,在“启动类型”下拉列表中选择“已禁用”,单击“确定”。

然后升级杀毒软件,杀毒。

如果问题还没有解决,建议使用AutoRuns检查自启动项目,找到该文件对应的项目并删除。

重装 或下载别的版本试试

首先必须说明:系统上程序是以进程为最小单位进行资源分配和调度,进程的实际执行则可以被划分为多个线程,现在主流CPU一张CPU最多可以在一个时刻支持8个线程(所谓4核8线程)。计算机系统工作与保护模式之下,采用分页分段内存管理机制,在执行程序之时,会执行进程调度。

一般来说,一个进程被意外终止会是由于以下原因:

1,内存泄露等原因导致内存被占用到一定程度(对于“一定程度”后面解释);

2,启动进程很多,导致内存被占用到一定程度。

这两种方式将内存“耗尽”。所谓内存耗尽,并不是内存真的被使用了100%,而是达到了为防止出现进程锁死而设置的阈值。

3,在内存“耗尽”之时,系统为了能够保证可以启动新的程序,或者为了能够让之前被挂起的现在要被执行的进程能分配到它所需要的空间,将按照一定的机制来清理内存(将某些被选中的内存或者被选中的资源从内存中移除)

4,问题就在这个选择机制上,一般来说,长时间不被激活的进程被选中的概率更大;而即使系统努力压缩其它进程的占用空间,也不足以分配给它所需要的足够的空间的进程也会被终止;在有些程序中,对它的某些资源定义了“可清除”,在内存耗尽时,系统将优先将这些资源移除,但是,如果这时候或者之后这个进程在没有条件(运行时间或内存空间)重新加载就要使用那部分资源,就会导致进程“无响应”,系统会尝试再次内存分配,为该进程加载资源,但如果加载失败(响应超时),则该进程被终止。

注:另外一方面,如果一个进程触发了某种特定错误(程序定义的或者系统设置的),称为”陷入陷阱门“,该进程也会被终止(程序自终止或者系统强行终止),一般来说,一次非法访问会导致这种结果(比如进程调用了一个严重越界指针或者执行了一次无权限访问等等)。

最后,由于开始没看到错误报告,现在补充:本次进程终止时由于该程序执行了一次无权限访问(访问越界)。

你事先有进行配置么?

Tools

=>

Build

System

=>

New

Build

System

,新建配置文件,删除初始化的内容,写入如下内容并保存为Pythonsublime-build,位置在C:\Users\Administrator\AppData\Roaming\Sublime

Text

2\Packages\Python文件夹(Preferences

=>

Browse

Packages…可以打开到Packages目录,然后选择Python文件夹即可)。

以上就是关于python如何终止os.system调用的程序全部的内容,包括:python如何终止os.system调用的程序、python程序停止问题、求教,怎么添加热键来终止运行中的python程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9698270.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存