如果你在手动添加win 服务时遇到1053错误,请记住,你的问题是试图将普通应用程序当做服务添加,这种做法是不允许的,除非...
在使用python tornado写服务器的同时,我们会遇到部署的问题。
部署--开机启动项
前两个商业项目部署在winserver 2003上,我开始使用的方式是添加一个启动项,后来发现,这个启动项和用户相关,即如果系统重启,只有当我这个用户登录服务器后,才启动我的服务。这个让我无法接受,这意味着我的服务器离不开我独立生活。
请教前辈得到下面这个方法:配置winserver的服务。
部署--普通应用封装成系统服务
使用两个工具:srvany.exe 和 instsrv.exe(instsrv.exe 是命令行工具,如需图形化使用srvinstw.exe)。
工具获取:
下载Windows 2003 Resource Kits,在微软官方有。
这里我们只需要这两个工具即可。
使用srvinstw的话,一切都是图形化,下一步下一步的配置即可。使用instsrv.exe,则需要在命令行操作,步骤如下:(请全部使用绝对路径)
- 建立服务
"%path%/instsrv <server name> %path%/srvany.exe"
这样你就成功的创建了一个服务。下面就是修改时间:
- 配置这个服务,让它封装程序
运行“regedit”,进入注册表。找到注册表项“HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\ <server name>,在<server name>项里建立新的子项“Parameters”,再在新建的 Parameters项里新建字符串值,数值名称设为“Application”,数值数据设为我们要启动的应用的绝对路径,如果这个启动是有参数的,如“C:\Python26\python D:\python\main.py”,那么有两种方式,一种是直接填这样的命令;另一种是写一个bat脚本,再将此脚本的绝对路径填入。此时,我们进入 “系统管理工具”--“服务”,找到服务,启动之。这时候,很关键的来了,启动了是没有任何反应的。我们查看任务管理器可以看到他的踪影,如果我们想看命令行输出,死了这条心,生成log文件日后详读吧。