zoukankan      html  css  js  c++  java
  • Jenkins-ssh远程执行nohup- java无法退出

    一,初步

    #执行方式
    ssh  192.168.2.103    " nohup  java -jar /home/a/ipf/ight/feedback/ixxxedback-platform-1.0-SNAPSHOT.jar  > out.file 2>&1  &"
    
    执行完这边立即断开,日志写在指定文件。
    参考文章:
    https://blog.csdn.net/oneinmore/article/details/50073443
    
    示例:
      ssh target "./test.sh"                            # 等待命令完成后退出;本地Ctrl+C中断ssh会话,不会中断test.sh的执行(bash父进程变为1)(与登录终端执行命令而终端连接断开时的行为不一样)
      ssh target "./test.sh &"                        # 等待命令完成后退出;本地Ctrl+C中断ssh会话,不会中断test.sh的执行(bash父进程本来就为1)
      ssh target "nohup ./test.sh &"                          # 等待命令完成后退出;本地Ctrl+C中断ssh会话,不会中断test.sh的执行(bash父进程本来就为1)
      ssh target "nohup ./test.sh >/dev/null 2>&1 &" # 启动test.sh执行后就会退出(bash父进程本来就为1)
      ssh target "./test.sh >/dev/null 2>&1 &"            # 启动test.sh执行后就会退出(bash父进程本来就为1),这也表明ssh不退出与nohup命令本身没有什么关系
    
    
    
    

    jenkins ssh远程执行nohup Java 后无法断开

    
    #问题
    Jenkins  exec 执行shell 脚本,远程启动jar 包后控制台信息一直在转圈,无法正常退出。命令为:
    
    ssh  user@IP " source    /etc/profile   &&  nohup  java   -jar xxxxx.jar  >  `date  +%m%d`-out.file 2>&1 &"
        
    查看部署服务器服务启动正常。
    在Jenkins服务器上看进程   :
    ps  -ef |grep  jenkins   发现子进程无法退出,即是执行启动命令,如上。
    
    手动杀死后,部署服务器没有异常,说明nohup 没有异常,只是ssh  执行后没有退出。
    
    
    su   jenkins   进入后手动执行如上命令;没有正常退出,去掉source   /etc/profile  重试, 无法正常启动jar 包,应该是没有环境变量。使用绝对路径执行:
    
    ssh  user@IP " nohup   /path/to/bin/java   -jar xxxxx.jar  >  `date  +%m%d`-out.file 2>&1 &"   后成功,原因是source 引起的,导致ssh  执行后无法退出,具体原理不清楚。
    
    
    
  • 相关阅读:
    js/es6判断对象是否为空,并判断对象是否包含某个属性
    Hive中的SQL执行计划--几乎所有的SQL都有
    spark中的scalaAPI之RDDAPI常用操作
    spark-scala开发的第一个程序WordCount
    linux中添加自定义命令
    kafka学习总结
    flume的sink写入hive表
    Flume架构以及应用介绍(转)
    Appache Flume 中文介绍(转)
    hiveSQL常用日期函数
  • 原文地址:https://www.cnblogs.com/g2thend/p/11702852.html
Copyright © 2011-2022 走看看