我有一台装有 TeamCity 6.5 Build Agent 的 Windows XP SP3 计算机,我正尝试使用其他帐户运行它。但是,当我尝试启动它时,它立即失败并显示以下错误:
Error 1053: The service did not respond to the start or control request in a timely fashion.
这个错误通常发生在服务在 30 秒内无法启动时,但在我的情况下,该错误会立即抛出。
可能导致此错误的原因有哪些?我已经验证了我能想到的一切:
- 该服务在 SYSTEM 下运行良好。
- 这是一个域帐户。
- 域账户未被锁定,且密码设置为永不过期。
- 密码输入正确。(是的;)
- 域帐户已添加到本地管理员组。
- 域帐户被授予“作为服务登录”本地安全策略。
事件日志中除了帐户登录和注销的成功审核以及服务启动失败错误(没有进一步的详细信息、退出代码或堆栈跟踪)外,没有任何内容。C:\BuildAgent\logs 目录中没有生成任何文件,因此我认为该过程根本没有启动。
答案1
在 中没有创建任何文件C:\BuildAgent\logs
,但是在 中C:\BuildAgent\launcher\bin\wrapper.log
我发现以下错误消息:
FATAL | wrapper | 2011/10/13 18:00:08 | Unable to access registry to obtain environment variables - The operation completed successfully. (0x0)
似乎 TeamCity Build Agent 是由开源Java 服务包装器Tanuki 撰写。包装器启动时会出现错误消息,它会从注册表中提取所有环境变量,并将它们注入到包装应用程序的当前上下文中(此处为包含错误消息的源代码)。
如果不存在以下任一键,包装器将立即退出:
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\控制\会话管理器\环境\
- HKEY_CURRENT_USER\环境\
在我的例子中,由于某种原因,第二个密钥丢失了。但运行以下命令(在相关用户的上下文中)填充了所需的密钥,并且 TeamCity 构建代理能够启动。
runas /user:MYDOMAIN\MyUser REG ADD "HKCU\Environment" /v "Foo" /d "Bar"
答案2
这可能是权限问题。服务是否访问了用户无权使用的任何资源?