【发布时间】:2025-11-15 03:10:01
【问题描述】:
我的测试工作流程需要启动 2 个 NodeJS 应用程序(稍后开始测试并将 REST 请求发送到已启动的守护程序)。但显然,运行node server.js 永远不会结束(当然,直到服务器应用停止)。
我尝试以 command='nohup node server.js &' 开始,但它不起作用 - 仍在等待步骤完成。
如何启动守护程序作为测试步骤之一?
【问题讨论】:
标签: buildbot
我的测试工作流程需要启动 2 个 NodeJS 应用程序(稍后开始测试并将 REST 请求发送到已启动的守护程序)。但显然,运行node server.js 永远不会结束(当然,直到服务器应用停止)。
我尝试以 command='nohup node server.js &' 开始,但它不起作用 - 仍在等待步骤完成。
如何启动守护程序作为测试步骤之一?
【问题讨论】:
标签: buildbot
好吧,我终于整理好了。我不知道为什么,但是如果ShellCommand 中的命令没有返回提示符(例如在命令末尾使用& 时),它会被视为“未完成并被超时杀死。所以我不能像这样启动守护进程nohup node ./server.js &.
但如果将此命令放在 shell 脚本中,则可以解决此问题。我创建了用于启动守护进程的运行器,它可以工作。
#!/bin/bash
CMD="$1 $2 $3 $4"
[ $# -eq 0 ] && { echo "Usage: $0 [FILE_1] [FILE_2] [FILE_3]"; exit 1; }
eval "${CMD}" &>/dev/null &!;
用法:/usr/local/bin/runner /node-v8.x-linux-x64/bin/node server.js
【讨论】: