从Hudson运行时Tomcat脚本无法正常工作

时间:2011-04-20 10:32:45

标签: linux tomcat hudson jenkins

我正在尝试运行一个在linux上停止并启动Tomcat的脚本。

当我从命令行运行它时它工作正常。但是,当我从Jenkins / Hudson作业中的“Execute Shell”构建步骤运行相同的脚本时,它似乎不起作用。 Jenkins没有报告任何错误,但如果我尝试进入tomcat页面,那么我会收到一个找不到错误的页面。

所以Jenkins似乎能够停止服务器,但不会重新启动它。

我会感激任何帮助。

2 个答案:

答案 0 :(得分:19)

尝试在“shell execute”块中取消设置BUILD_ID。在这种情况下,您甚至可能不需要使用nohup

BUILD_ID=
./your_hudson_script_that_starts_tomcat.sh

答案 1 :(得分:1)

如果没有看到您的脚本,很难给出确切的答案。但是,您可以尝试将以下内容添加到脚本的开头(假设它是一个bash脚本):

# Trace executed commands.
set -x

# Save stdout / stderr in files
exec >/tmp/my_script.stdout
exec 2>/tmp/my_script.stderr

您也可以尝试添加

set -e

如果命令返回错误状态,则立即退出shell。

如果看起来Hudson正在杀死Tomcat,那么你可能想在nohup中运行它(如果你还没有这样做的话):

nohup bin/startup.sh >/dev/null 2>&1 &