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

如何在Windows上从python启动守护进程?

戴建义
2023-03-14
问题内容

我的python脚本可以产生一个将无限期运行的进程吗?

我对python或生成的守护进程不太熟悉,因此我对此进行了总结:

si = subprocess.STARTUPINFO()
si.dwFlags = subprocess.CREATE_NEW_PROCESS_GROUP | subprocess.CREATE_NEW_CONSOLE
subprocess.Popen(executable, close_fds = True, startupinfo = si)

进程继续运行经过python.exe,但是一旦关闭cmd窗口,该进程便被关闭。


问题答案:

使用答案Janne
Karila指出,这是一种可以运行一个流程的方法,该流程在其父级死亡时不会死亡,而无需使用该win32process模块。

DETACHED_PROCESS = 8
subprocess.Popen(executable, creationflags=DETACHED_PROCESS, close_fds=True)

DETACHED_PROCESS是传递到基础CreateProcess函数的流程创建标志。



 类似资料:
  • 在Windows上,我总是能够毫无问题地构建Docker图像。 如原始文档https://docs.docker.com/config/daemon/systemd/中所述,键入将导致以下错误:

  • 问题 你想编写一个作为一个在Unix或类Unix系统上面运行的守护进程运行的程序。 解决方案 创建一个正确的守护进程需要一个精确的系统调用序列以及对于细节的控制。 下面的代码展示了怎样定义一个守护进程,可以启动后很容易的停止它。 #!/usr/bin/env python3 # daemon.py import os import sys import atexit import signal

  • 首先,我在删除后下载了lquidbounce的源代码。gradle和我发布了代码信息,希望你们能帮我

  • 本文向大家介绍python实现守护进程、守护线程、守护非守护并行,包括了python实现守护进程、守护线程、守护非守护并行的使用技巧和注意事项,需要的朋友参考一下 守护进程 1、守护子进程 主进程创建守护进程 其一:守护进程会在主进程代码执行结束后就终止 其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic processes are not allow

  • 当我试图在Android Studio中导入一个gradle项目时,我遇到了以下错误。 这是我看到的输出: 我已经关闭了在SO中的解决方案中提到的防病毒软件。但是似乎什么都不起作用。

  • 错误:无法启动守护进程。此问题可能是由不正确的守护程序配置引起的。例如,使用无法识别的 jvm 选项。请参阅守护程序的用户指南章节,http://gradle.org/docs/1.12/userguide/gradle_daemon.html VM初始化期间发生错误无法为对象堆保留足够的空间无法创建Java虚拟机。