使用 python 2.7 实现子进程模块的 os.system(cmd &) 行为
Achieve os.system(cmd &) behaviour with subprocess module using python 2.7
可能是 How to start a background process in Python?
的副本
但在许多解决方案中,只有 os.system(commandToRunInBackground &)
似乎很简单并且可以解决问题。
虽然,根据 Replacing os.system(), using subprocess 模块更推荐。
那么如何使用 subprocess 模块根据 shell(注意,最后是 &)运行 后台处理。
在现代操作系统中,自然地 运行 并行处理,一个等待另一个终止是一种特殊情况。在 60 年代后期设计 &
语法时,情况有所不同。然后你必须标记并行执行。
在 shell 上,这一直持续到今天,也是因为在许多情况下让 shell 在允许用户下一次输入之前等待命令终止很方便,所以还有没有&
等待终止的情况
在编程层面上,&
(并行执行)的情况是正常情况,无需执行任何操作。
没有&
(等待终止)的情况可以通过显式使用wait()
系统调用来实现(这就是shell在大多数情况下所做的)。
对你来说,只需使用 Popen
而不要调用 wait()
;-)
可能是 How to start a background process in Python?
的副本但在许多解决方案中,只有 os.system(commandToRunInBackground &)
似乎很简单并且可以解决问题。
虽然,根据 Replacing os.system(), using subprocess 模块更推荐。
那么如何使用 subprocess 模块根据 shell(注意,最后是 &)运行 后台处理。
在现代操作系统中,自然地 运行 并行处理,一个等待另一个终止是一种特殊情况。在 60 年代后期设计 &
语法时,情况有所不同。然后你必须标记并行执行。
在 shell 上,这一直持续到今天,也是因为在许多情况下让 shell 在允许用户下一次输入之前等待命令终止很方便,所以还有没有&
等待终止的情况
在编程层面上,&
(并行执行)的情况是正常情况,无需执行任何操作。
没有&
(等待终止)的情况可以通过显式使用wait()
系统调用来实现(这就是shell在大多数情况下所做的)。
对你来说,只需使用 Popen
而不要调用 wait()
;-)