当另一个正在运行时,如何打开子进程?

希基

我正在尝试制作一个应用启动器,但在另一个子进程正在运行时却无法正常工作。我正在启动firefox,但是只有在关闭带有firefox的窗口时,其他任务才能完成。码:

import subprocess
while True:
    app = input('>>> ')
    subprocess.call(app)

示例:我启动了一个应用程序,并启动了一个网络浏览器,然后键入“ atom”和“ leafpad”以打开它们,但是只有在关闭带有浏览器的窗口时它们才能完成。

让·弗朗索瓦·法布尔

您可以创建一个运行subprocess.call命令的线程

一个便宜的把戏将是替换subprocess.callsubprocess.Popen

import subprocess
while True:
    app = input('>>> ')
    subprocess.Popen(app)

您应该分配结果,以便您可以将命令输出作为流读取(带有默认情况下没有的正确重定向参数),但是它也可以用作在后台运行内容的快速方法。

一旦Popen被调用并启动该过程,python脚本就会恢复。

警告:如果不存储流程句柄,则无法进一步控制应用程序,也不知道该流程是否可以启动。将句柄存储在字典中将使您的小型Shell内部命令可以随意杀死这些进程。

为了确保启动该过程,最好还是给我们一个线程并subprocess.call在该线程中调用(阻塞但在该线程中)并检查返回代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当另一个进程正在运行时,内核会做什么?

来自分类Dev

另一个正在运行时暂停或停止systemd服务

来自分类Dev

当另一个python脚本正在运行时,如何停止我的python脚本?

来自分类Dev

如何查看Beaglebone上另一个root实例正在运行的进程

来自分类Dev

如何在运行时访问另一个项目中的类

来自分类Dev

如何在另一个进程运行时更改 tkinter 标签?

来自分类Dev

当另一个PHP脚本正在运行时,AJAX不会调用其PHP脚本

来自分类Dev

在另一个线程正在运行时退出应用程序时出错

来自分类Dev

当另一个PHP脚本正在运行时,AJAX不会调用其PHP脚本

来自分类Dev

当另一个线程正在运行时,线程联接会导致分段错误

来自分类Dev

当线程中的一个进程正在运行时,ProgressDialog不显示

来自分类Dev

如何在主线程仍在运行时使用线程运行另一个 JFrame

来自分类Dev

另一个ID为#######的进程当前正在运行ngcc

来自分类Dev

打开另一个进程正在使用的文件

来自分类Dev

如何加入在第一个进程仍在运行时退出的第二个进程?

来自分类Dev

如何在运行时从一个应用程序切换到另一个应用程序

来自分类Dev

如何从另一个脚本中杀死正在运行的脚本?

来自分类Dev

“ ntpd无法绑定到通配符地址0.0.0.0-另一个进程可能正在运行”

来自分类Dev

“ ntpd无法绑定到通配符地址0.0.0.0-另一个进程可能正在运行”

来自分类Dev

EFCore支架数据库并在运行时迁移到另一个上下文

来自分类Dev

当另一个构建已在运行时,Azure DevOps构建管道失败

来自分类Dev

从另一个 UserControl 创建 UserControl 并在运行时添加到父容器

来自分类Dev

如何在运行时从远程计算机上的另一个脚本更改变量的值?

来自分类Dev

如何防止Skype在另一个实例已经运行时启动它?

来自分类Dev

如何在另一个模块上添加运行时依赖项?

来自分类Dev

如何防止Skype在另一个实例已经运行时启动它?

来自分类Dev

如何在另一个模块上添加运行时依赖项?

来自分类Dev

当任务在android中的另一个线程中运行时,如何更新UI?

来自分类Dev

如何在另一个声音运行时停止声音?

Related 相关文章

  1. 1

    当另一个进程正在运行时,内核会做什么?

  2. 2

    另一个正在运行时暂停或停止systemd服务

  3. 3

    当另一个python脚本正在运行时,如何停止我的python脚本?

  4. 4

    如何查看Beaglebone上另一个root实例正在运行的进程

  5. 5

    如何在运行时访问另一个项目中的类

  6. 6

    如何在另一个进程运行时更改 tkinter 标签?

  7. 7

    当另一个PHP脚本正在运行时,AJAX不会调用其PHP脚本

  8. 8

    在另一个线程正在运行时退出应用程序时出错

  9. 9

    当另一个PHP脚本正在运行时,AJAX不会调用其PHP脚本

  10. 10

    当另一个线程正在运行时,线程联接会导致分段错误

  11. 11

    当线程中的一个进程正在运行时,ProgressDialog不显示

  12. 12

    如何在主线程仍在运行时使用线程运行另一个 JFrame

  13. 13

    另一个ID为#######的进程当前正在运行ngcc

  14. 14

    打开另一个进程正在使用的文件

  15. 15

    如何加入在第一个进程仍在运行时退出的第二个进程?

  16. 16

    如何在运行时从一个应用程序切换到另一个应用程序

  17. 17

    如何从另一个脚本中杀死正在运行的脚本?

  18. 18

    “ ntpd无法绑定到通配符地址0.0.0.0-另一个进程可能正在运行”

  19. 19

    “ ntpd无法绑定到通配符地址0.0.0.0-另一个进程可能正在运行”

  20. 20

    EFCore支架数据库并在运行时迁移到另一个上下文

  21. 21

    当另一个构建已在运行时,Azure DevOps构建管道失败

  22. 22

    从另一个 UserControl 创建 UserControl 并在运行时添加到父容器

  23. 23

    如何在运行时从远程计算机上的另一个脚本更改变量的值?

  24. 24

    如何防止Skype在另一个实例已经运行时启动它?

  25. 25

    如何在另一个模块上添加运行时依赖项?

  26. 26

    如何防止Skype在另一个实例已经运行时启动它?

  27. 27

    如何在另一个模块上添加运行时依赖项?

  28. 28

    当任务在android中的另一个线程中运行时,如何更新UI?

  29. 29

    如何在另一个声音运行时停止声音?

热门标签

归档