nodejs服务器在jenkins中未给出成功状态
我想用詹金斯来运行一个nodejs项目。一切进展顺利,只是我看不到詹金斯的工作有任何成功的迹象 我在jenkins中使用npm install&npm start命令启动了服务器。它启动服务器,但不提供构建成功,因此,我无法启动其他作业,这取决于节点服务器的构建成功&当新提交到达时,jenkins会检测到它,但作业不会重新启动,而是在原始作业运行时保持挂起状态nodejs服务器在jenkins中未给出成功状态,jenkins,Jenkins,我想用詹金斯来运行一个nodejs项目。一切进展顺利,只是我看不到詹金斯的工作有任何成功的迹象 我在jenkins中使用npm install&npm start命令启动了服务器。它启动服务器,但不提供构建成功,因此,我无法启动其他作业,这取决于节点服务器的构建成功&当新提交到达时,jenkins会检测到它,但作业不会重新启动,而是在原始作业运行时保持挂起状态 我是詹金斯的新手。是否有人对此提出建议???听起来您的js脚本的执行正在挂起您的构建,请尝试使用&after将其发送到后台: npm i
我是詹金斯的新手。是否有人对此提出建议???听起来您的js脚本的执行正在挂起您的构建,请尝试使用&after将其发送到后台:
npm install
npm start &
还请注意,从Jenkins作业运行npm start
将产生一个新进程,如果希望此进程保持为守护进程,这是一个问题
为避免出现这种情况,您需要在命令之前提供一个标志:
BUILD\u ID=dontKillMe npm start&
您还没有明确说明作业管道中的所有步骤,但我认为您尝试在第一个作业的生成之后执行一些生成后操作,因此发现流程未运行将导致后续作业失败
此外,尝试使用。它将确保您的脚本持续运行,直到您停止它为止,使用它您可以像这样启动应用程序:
BUILD_ID=dontKillMe forever start yourApp.js
听起来您的js脚本的执行正在挂起您的构建,请尝试使用&after将其发送到后台:
npm install
npm start &
还请注意,从Jenkins作业运行npm start
将产生一个新进程,如果希望此进程保持为守护进程,这是一个问题
为避免出现这种情况,您需要在命令之前提供一个标志:
BUILD\u ID=dontKillMe npm start&
您还没有明确说明作业管道中的所有步骤,但我认为您尝试在第一个作业的生成之后执行一些生成后操作,因此发现流程未运行将导致后续作业失败
此外,尝试使用。它将确保您的脚本持续运行,直到您停止它为止,使用它您可以像这样启动应用程序:
BUILD_ID=dontKillMe forever start yourApp.js
问题:执行后,您的nodejs服务器似乎没有在jenkins上运行,您有两个解决方案,它们都经过了调查和测试: 选项1-建议:在Jenkins上运行后台进程,在BUILD_ID参数中使用dontKillMe标志和nuhup unix命令保持活动状态 从文档中:实现这一点的一个方便方法是更改Jenkins的ProcessTreeKiller所寻找的环境变量BUILD_ID。这将导致Jenkins假设您的守护进程不是由Jenkins构建生成的 nohup是一个POSIX命令,用于忽略HUP(挂断)信号。赫普 按照惯例,信号是终端警告相关进程的方式 退出
在删除这段代码后,它工作正常,只要机器启动,该过程就处于运行状态 问题:执行后,您的nodejs服务器似乎没有在jenkins上运行,您有两个解决方案,它们都经过了调查和测试: 选项1-建议:在Jenkins上运行后台进程,在BUILD_ID参数中使用dontKillMe标志和nuhup unix命令保持活动状态 从文档中:实现这一点的一个方便方法是更改Jenkins的ProcessTreeKiller所寻找的环境变量BUILD_ID。这将导致Jenkins假设您的守护进程不是由Jenkins构建生成的 nohup是一个POSIX命令,用于忽略HUP(挂断)信号。赫普 按照惯例,信号是终端警告相关进程的方式 退出
在删除这段代码后,它工作正常,只要机器启动,该过程就处于运行状态 失败的确切原因是什么?你能附上错误的日志吗?失败的确切原因是什么?您可以附加错误日志吗?是的,我需要在由节点项目运行的web服务器上运行一些调用rake的测试脚本。我已经使用了npmstart&它提供了构建成功,但是服务器没有启动。根据您的建议,我还尝试了BUILD_ID=dontKillMe npm start&;但是它不起作用。@tasin_megamind您能告诉我们您在运行
npm start
时调用的脚本行吗?这是您的packages.json文件中的文件,该文件现在可用于forever。这真的很有帮助。@tasin_megamind太好了!!你能接受我的回答吗?:)是的,我需要在由节点项目运行的web服务器上运行一些调用rake的测试脚本。我已经使用了npmstart&它提供了构建成功,但是服务器没有启动。根据您的建议,我还尝试了BUILD_ID=dontKillMe npm start&;但是它不起作用。@tasin_megamind您能告诉我们您在运行npm start
时调用的脚本行吗?这是您的packages.json文件中的文件,该文件现在可用于forever。这真的很有帮助。@tasin_megamind太好了!!你能接受我的回答吗?:)
npm install pm2 -g
cd <yourApp>
pm2 start scripts/start.js
# check process
ps -ef | grep node
# check connectivity in server port
telnet localhost <yourNodeJSPortRunning>
['SIGINT', 'SIGTERM'].forEach(function(sig) {
process.on(sig, function() {
devServer.close();
process.exit();
});
});
})
.catch(err => {
if (err && err.message) {
console.log(err.message);
}
process.exit(1);
});