当前位置: 首页 > 面试题库 >

如何在Python中启动后台进程?

王楚青
2023-03-14
问题内容

我正在尝试将Shell脚本移植到可读性更高的python版本。原始的shell脚本在后台使用“&”启动多个进程(实用程序,监视器等)。如何在python中达到相同的效果?我希望这些过程在Python脚本完成后不会消失。我敢肯定它与守护程序的概念有关,但是我找不到如何轻松实现此目的。


问题答案:

注意:此答案的最新版本比2009年发布时要少。subprocess现在建议在文档中使用其他答案中显示的模块

(请注意,子流程模块提供了更强大的工具来生成新流程并检索其结果;使用该模块比使用这些功能更可取。)

如果你希望你的进程在后台启动,则可以使用system()与你的Shell脚本相同的方式来使用和调用它,也可以spawn

import os
os.spawnl(os.P_DETACH, 'some_long_running_command')

(或者,你也可以尝试使用便携性较差的os.P_NOWAIT标志)。



 类似资料:
  • 问题内容: 我想在这里做些奇怪的事情。我需要从一个守护进程启动一个logcat进程,该守护进程将在后台运行并打印到终端,而无需控制stdin。它是用于记录日志的,因此理想情况下logcat将打印日志消息,同时仍允许用户输入标准命令并从Shell初始化程序。这是到目前为止我拥有的守护程序的代码。该程序logcat启动并显示日志消息,但由于该程序已控制了stdin,因此我无法在stdin中输入任何命令

  • 我正在构建一个android应用程序,我需要从后台开始一项活动。我正在使用ForegroundStarter来扩展服务,以实现这一点。我有一个活动屏幕。我需要从前台服务运行的类。活动的广告屏幕。除了Android10,其他所有Android版本的课程都可以正常运行(从后台开始)。 前场先发。班 我读到在Android10上从后台启动活动有一些限制。这个代码似乎不再有效了。https://devel

  • 问题内容: 我在应用程序中使用selenium+ phantomjs,但我想在后台启动我的应用程序,selenium和phantomjs窗口。我该怎么做? 我试过了: 问题答案:

  • 问题内容: 我正在使用.war文件在服务器上运行jenkins。他们说使用 (来源:https : //wiki.jenkins- ci.org/display/JENKINS/Starting+and+Accessing+Jenkins )来启动服务器。这将启动服务器并在屏幕上显示登录信息,并且可以使用了。 唯一的问题是,当我“ ctrl + c”它停止服务器时。我希望它应该在后台启动,以便即使

  • 问题内容: 我的python脚本可以产生一个将无限期运行的进程吗? 我对python或生成的守护进程不太熟悉,因此我对此进行了总结: 该进程继续运行经过python.exe,但是一旦关闭cmd窗口,该进程便被关闭。 问题答案: 使用答案Janne Karila指出,这是一种可以运行一个流程的方法,该流程在其父级死亡时不会死亡,而无需使用该模块。 是传递到基础CreateProcess函数的流程创建

  • 问题内容: 我正在尝试使用下面的nohup命令使用光纤启动celerycam进程。不幸的是,什么也没有发生,手动使用相同的命令可以启动该过程,但不能通过结构。关于如何解决这个问题的任何建议? 问题答案: 我正在使用Erich Heine的建议使用“ dtach”,并且对我来说效果很好: 这是在这里找到的。