我编写了一个温度记录器Python脚本,并将其作为Windows XP中的计划任务输入。它具有以下命令行:
C:\Python26\pythonw.exe "C:\path\to\templogger.py"
它将数据写入本地公用文件夹中的文件(例如,所有在本地登录的人都可以完全访问)。
到目前为止,我能够实现这一目标:
1.让任务在任何人登录之前运行(即在“按 Ctrl + Alt + Del ”屏幕)
但我遇到了这些问题:
1.当我登录,注销,然后重新登录时,计划任务不再有效。我无法再在任务管理器的“进程”选项卡中看到它。我怀疑它在我退出时关闭了
2.我尝试将任务的“运行方式...”属性设置为DOMAIN\my-username
并尝试SYSTEM
,但上述问题#1仍然存在。
概要
只要Windows处于活动状态,我希望我的程序能够运行。无论是否有人登录或退出都无关紧要。
P.S。
我在超级用户中询问the same question,我被建议将其作为服务编写,我对此一无所知(除了启动和停止它们)。我希望在这里能够吸引更多的观众。
答案 0 :(得分:3)
Is it possible to run a Python script as a service in Windows? If possible, how?
http://agiletesting.blogspot.com/2005/09/running-python-script-as-windows.html
答案 1 :(得分:2)
您的方案正是服务所需的用例,遗憾的是,任务不适合您要执行的操作。那说在python中写作服务也不是在公园散步,为了缓解这里的痛苦是我过去仔细研究过的一些环节:
http://agiletesting.blogspot.com/2005/09/running-python-script-as-windows.html
http://mail.python.org/pipermail/python-win32/2008-April/007298.html
我特别使用了第二个链接来创建一个Windows脚本,然后使用py2exe将其编译为可执行服务并与SrvAny一起安装。