我想运行一个脚本,停止并启动Tomcat在Linux上。当从哈德森运行Tomcat脚本不工作
当我从命令行运行它时,它工作正常。但是,当我在Jenkins/Hudson作业的“Execute Shell”构建步骤中运行相同的脚本时,它似乎不起作用。詹金斯不报告任何错误,但如果我尝试去tomcat页面,然后我得到一个页面未找到错误。
因此詹金斯似乎能够阻止服务器,但不能将其恢复。
我会很感激任何帮助。
我想运行一个脚本,停止并启动Tomcat在Linux上。当从哈德森运行Tomcat脚本不工作
当我从命令行运行它时,它工作正常。但是,当我在Jenkins/Hudson作业的“Execute Shell”构建步骤中运行相同的脚本时,它似乎不起作用。詹金斯不报告任何错误,但如果我尝试去tomcat页面,然后我得到一个页面未找到错误。
因此詹金斯似乎能够阻止服务器,但不能将其恢复。
我会很感激任何帮助。
试着在你的“shell执行取消设置BUILD_ID '块。在这种情况下,您甚至可能不需要使用nohup
BUILD_ID=
./your_hudson_script_that_starts_tomcat.sh
没有看到您的脚本,很难给出确切的答案。但是你可以尝试添加以下到脚本的开始(假设它是一个bash脚本):
# Trace executed commands.
set -x
# Save stdout/stderr in files
exec >/tmp/my_script.stdout
exec 2>/tmp/my_script.stderr
您也可以尝试加入
set -e
使外壳立即退出,如果一个命令返回错误状态。
如果它看起来好像是哈德森杀死Tomcat的,那么你可能想的nohup内运行(如果你还没有这样做):
nohup bin/startup.sh >/dev/null 2>&1 &
如果我长时间睡眠然后尝试进入tomcat页面,则在作业完成之前它会显示OK。所以我想知道当一项工作完成时,Jenkins是否会自动杀死它开始的任何进程。 – 2011-04-20 19:15:09
我在上面的回答中添加了一些关于nohup的内容(无法在此评论中对代码进行格式化)。希望这可能会有所帮助。 – 2011-04-20 22:01:56
感谢您的快速响应。我用nohup调用创建了一个新脚本,就像你说的:'nohup /usr/tomcat5/bin/startup.sh>/dev/null 2>&1&'我得到了我的Jenkins实例来调用,但它仍然没有似乎工作。尽管手动运行脚本时它确实工作正常。 – 2011-04-26 11:19:58
您会得到什么错误*完全*?它是404吗?或“连接拒绝”? – 2011-04-29 12:29:14