3

我按照这个答案中的说明编写了一个用作服务的 Python 脚本。我将循环代码放在def main().

我用python my_script.py install. 我能够services.msc在 Windows XP 中启动和停止服务。

它是一个日志程序,旨在在 Windows 运行时写入日志。它不应该关心谁或是否有人登录或注销。我的问题是当我注销时服务将停止。如何让它在注销后存活?

4

1 回答 1

2

当用户关闭控制台、注销或关闭系统时,系统会生成 CTRL_CLOSE_EVENT、CTRL_LOGOFF_EVENT 和 CTRL_SHUTDOWN_EVENT 信号,以便进程在终止之前有机会进行清理。为了确保您将服务与所有这些分离,您需要使用控制处理程序来设置它:

  win32api.SetConsoleCtrlHandler(lambda x: True, True)  

查看: http: //msdn.microsoft.com/en-us/library/ms685049 (v=VS.85).aspx

刚刚检查了有一个食谱可以很好地说明这一点。

于 2010-09-24T00:01:01.773 回答