jenkins 中构建后执行脚本,在脚本中执行 tomcat 启动脚本,执行失败,请问是为什么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
palmers
V2EX    问与答

jenkins 中构建后执行脚本,在脚本中执行 tomcat 启动脚本,执行失败,请问是为什么?

  •  
  •   palmers 2016-11-01 18:44:24 +08:00 5066 次点击
    这是一个创建于 3342 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目的是:在 jenkins 构建完项目后,自动将编译的 maven war 包复制到 tomcat/webapp 目录下部署,然后启动 tomcat .

    在脚本中,能正常将编译后的 war 包复制到tomcat/webapp目录下,但是执行 sh startup.sh & 后 tomcat 并没有启动起来.

    脚本执行到 catalina.sh中的输出CATALINA_BASECATALINA_TMPDIR 后就停止了,这是在 jenkins 的console output中看到的 之后输出的是 jenkins job 执行成功的信息。

    我对脚本一窍不通,实在是没招了,请大家支招。 多谢!!!!

    第 1 条附言    2016-11-02 10:32:50 +08:00

    没有使用脚本,在别的地方找到这个插件然后使用插件部署到tomcat了, 插件地址在这里

    11 条回复    2016-11-02 13:32:41 +08:00
    Gonster
        1
    Gonster  
       2016-11-01 18:52:17 +08:00 via iPhone
    Jenkins 构建后执行脚本, Jenkins 在脚本之行完成后会把脚本创建的进程都杀死,在 sh 脚本里修改一个变量就可以避免被杀死(实在记不住变量名了)。
    或者你可以考虑下其他 Jenkins 插件做这种事情。
    kylinking
        2
    kylinking  
       2016-11-01 19:04:04 +08:00
    接楼上,有个 Publish Over SSH 可以复制文件和执行脚本,不过更对集群进行适合批量管理,可以一试
    Gonster
        3
    Gonster  
       2016-11-01 19:11:05 +08:00 via iPhone
    之前看文档 Jenkins 的理念主要是它就是用来构建的而不是部署,部署应该交给其他工具,构建的话构建完了之后自然应该停止,所以自带插件都是这样的,不然脚本可能会在 Jenkins 服务器上一堆残留一堆没杀死的进程。
    其他有些插件,设计就是用来部署的所以不会按 Jenkins 这种设计来。
    palmers
        4
    palmers  
    OP
       2016-11-01 22:24:27 +08:00
    @Gonster 本来计划是安装 jenkins 一个插件来部署自动部署项目的,但是这个插件死活下载不下来,就想到用脚本来复制 war 包然后杀死 tomcat 进程然后调用 tomcat 启动脚本来启动 tomcat 服务的。 就是这个插件 : Deploy to container Plugin
    palmers
        5
    palmers  
    OP
       2016-11-01 22:25:23 +08:00
    @kylinking 我现在的问题不在 war 的部署而且 tomcat 的启动脚本执行上
    Gonster
        6
    Gonster  
       2016-11-02 08:46:06 +08:00 via iPhone
    @palmers 其实我没完全看明白,你的意思是本来不想用 deploy to container 插件,但是下载不下来,所以用的是 Execute shell 运行脚本做你描述的事情?
    如果是我理解的这样,你只能用 Execute shell ,那一楼我提到的那个变量名字是 BUILD_ID ,随便改成其他值就好了。参考:
    http://stackoverflow.com/questions/5728899/tomcat-script-not-working-when-run-from-hudson
    https://wiki.jenkins-ci.org/display/JENKINS/ProcessTreeKiller
    Gonster
        7
    Gonster  
       2016-11-02 08:48:01 +08:00 via iPhone
    6 楼 打错:“你意思本来想用 deploy to container 插件”
    palmers
        8
    palmers  
    OP
       2016-11-02 09:08:07 +08:00
    @Gonster 对, 是这个意思,这个插件一直安装失败,所以想着用脚本实现自动部署,但是 tomcat 启动脚本`startup.sh`执行到这就结束了,去 catalina.sh 也没看明白,主要是我不懂 sh 脚本语法,这是 jenkins 执行 job 最后的输出,麻烦你帮我看下是哪儿出问题了:
    从这儿就开始调用`startup.sh`了,在我的自定义脚本中是 这条语句: `./startup.sh &`
    Using CATALINA_BASE: /home/tianzhiwang/casicdata/tomcat/apache-tomcat-7.0.63
    Using CATALINA_HOME: /home/tianzhiwang/casicdata/tomcat/apache-tomcat-7.0.63
    Using CATALINA_TMPDIR: /home/tianzhiwang/casicdata/tomcat/apache-tomcat-7.0.63/temp
    Finished: SUCCESS

    最后, 我尝试在'shell execute' block 添加了 BUILD_ID 键值对,但是问题依旧.
    Gonster
        9
    Gonster  
       2016-11-02 12:52:18 +08:00 via iPhone
    怎么写你参考 6 六最后一个链接页面里最后一行的写法,大概就是:
    BUILD_ID=abcde ./startup.sh

    如果不行的话我就不大清楚了
    Gonster
        10
    Gonster  
       2016-11-02 12:53:43 +08:00 via iPhone
    六楼。。写错了
    palmers
        11
    palmers  
    OP
       2016-11-02 13:32:41 +08:00
    @Gonster 我是参考这个写的 依然不行 然后现在使用插件,自动部署的时候报错, Context /myproject is defined in server.xml and may not be undeployed 每次都需要删除 webapp 和 catalina 下的项目文件,然后重启启动 tomcat 就可以了. 真是怎么都不行,服了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1171 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 17:35 PVG 01:35 LAX 09:35 JFK 12:35
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86