jenkins pipeline中执行nohup java -jar ***.jar & 的时候会忽略执行jar之后的命令

搜索关键词:pipeline中执行nohup时忽略执行&

问题:

在做自动化部署的时候,脚本如下:

sh "ssh [email protected]‘$target_ip‘ nohup ‘$java_home‘ -jar ‘$app_home‘/‘$env.JOB_NAME‘.jar >‘$app_home‘/ 2>&1 &"

总是执行到.jar这里后面的指定日志输出和后台运行命令(>‘$app_home‘/ 2>&1 &)没有执行

解决:

将nohup到最后的&之间的命令用‘‘单引号引起来,当做一个整体命令

sh "ssh [email protected]‘$target_ip‘ ‘nohup ‘$java_home‘ -jar ‘$app_home‘/‘$env.JOB_NAME‘.jar >‘$app_home‘/ 2>&1 &‘"

原文地址:https://www.cnblogs.com/gcgc/p/10316751.html

时间: 2024-10-07 00:18:45

jenkins pipeline中执行nohup java -jar ***.jar & 的时候会忽略执行jar之后的命令的相关文章

在Jenkins pipeline中融入python和go语言编程

在Jenkins pipeline的groovy脚本中可以实现很多复杂灵活的功能,但是:1 一来对java.groovy不是很熟,也不知道能不能引入一些三方库?比如搞个jdbc操作下mysql什么的.2 二是自己对go和python比较熟悉,所以想能够更加灵活的实现更多的功能:比如: 操作数据库,无需依赖构建宿主机必须有数据库client来靠shell操作数据库. 操作gitlab,比如参数化构建,传递进来的各仓库的tag参数,需要先将tag在gitlab中对应起来一一先打tag,然后再拉取新打

使用Jenkins Pipeline自动化构建发布Java项目

简介 Pipeline,简而言之,就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化. Pipeline是Jenkins2.X的最核心的特性,帮助Jenkins实现从CI到CD与DevOps的转变. 一,创建pipeline项目 二,清除部分历史构建 三,参数化构建 这里使用三个参数,分别对应是否拉取代码,项目名称,以及发版选项 四,编写pipeline脚本 选择pipeline script编写pipeline

[Android Studio] *.jar 与 *.aar 的生成与*.aar,jar,第三方库项目导入项目方法

主要讲解Android Studio中生成aar文件以及本地方式使用aar文件的方法. 在Android Studio中对一个自己库进行生成操作时将会同时生成*.jar与*.aar文件. 分别存储位置: *.jar:库/build/intermediates/bundles/debug(release)/classes.jar *.aar:库/build/outputs/aar/libraryname.aar 两者区别: *.jar:只包含了class文件与清单文件,不包含资源文件,如图片等所有

用Jenkins Pipeline实现网元日志和配置的导出

整体架构: Jenkins > PC1 > RobotFramework > NEs_1 > PC2 > RobotFramework > NEs_2 > PC3 > RobotFramework > NEs_3 .... 通过Jenkins控制多台PC,再借助RobotFramework框架实现对网元的自动化测试,使用SSHLibrary等库. Jenkins Pipeline中的代码: node(pc) { stage('Export_Log_an

CentOS下安装Jenkins(Docker/war/tomcat/java -jar)

参考官方提供的安装教程:https://jenkins.io/doc/book/installing/,可以发现官方推荐使用Docker进行安装.虽然用Docker有很多好处,但也有缺点. 下面是各种安装方法: 无论怎么的安装方法,jenkins在启动时,都会在运行用户的目录下生成.jenkins文件夹,此文件夹用于存放配置和项目文件,因此,想要备份和迁移jenkins的可以在此文件夹入手. 一.Docker Docker运行简单,无需关心Java环境,但弊端是不能使用Docker版的Jenki

java应用程序远程登录linux并执行其命令(ssh jar包)

http://www.ganymed.ethz.ch/ssh2/在这个网址下载一个调用ssh和scp命令的jar包. 然后,就可以写程序了.将上面的jar包导入MyEclipse,下面是一个类的实例代码. package hh; import java.io.BufferedReader;     import java.io.IOException;     import java.io.InputStream;    import java.io.InputStreamReader; imp

(maven项目)使用java -jar命令遇到的小问题|xx.jar中没有主清单或Error:Invalid or corrupt jarfile xx.jar

xx.jar中没有主清单或Error:Invalid or corrupt jarfile xx.jar 遇到这个问题,是因为你的jar包没有设置主类的入口. 即在META-INF文件夹的MANIFEST.MF文件中没有定义Main-Class: packageName.className(此处Main-Class:与 packageName.className之间有一个空格并且一行结束后有换行符) 我们可以用winrar打开你导出jar包(不用解压),在META-INF文件夹中找到MANIFE

java项目打包成可执行jar用log4j将日志写在jar所在目录

开发一个demo时想将日志输出到最终打包的jar所在目录,从网上学习实验整理之后的配置如下, log4j.properties log4j.rootLogger = INFO,console,logFile log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.Threshold=INFO log4j.appender.console.ImmediateFlush=true log4j.app

让jar程序在linux上一直执行

当我们把java程序打成jar包后,放到linux上通过putty或其它终端执行的时候,如果按照:java -jar xxxx.jar执行,当我们退出putty或终端的时候,xxxx.jar这个程序也会停止.为了保证程序能够一直运行,应该改为这样运行:nohup java -jar xxx.jar&命令,则程序会在后台一直运行,值得注意的是,此时程序控制台输出会被转移到nohup.out文件中,这个nohup.out文件的位置就在jar包的当前文件夹内. 但是有时候在这一步会有问题,当把终端关闭