Java程序远程无法执行nohup命令

问题的上下文:
由于生产无法使用 jenkins 发布,所以采用 ch.ethz.ssh2 或叫 ganymed-ssh2 的开源 java 的 ssh api 进行远程发布。
在发起重启时,远程执行 nohup 命令:

nohup java -jar taiping-$project-3.jar --spring.profiles.active=prod >> nohup.out &

发现代码执行了,但是项目并没有实际启动。

网上说是 ganymed-ssh2 不能使用 nohup命令,这是有误导的。问题本质是ganymed-ssh2 远程方式登陆 ssh, 在执行以上命令时 java -jar 命令系统不认。

解决办法,使用绝对路径:

nohup /home/loginuser/java/jdk1.8.0_131/bin/java -jar taiping-$project-3.jar --spring.profiles.active=prod >> nohup.out &

原文地址:https://www.cnblogs.com/xiluhua/p/11051997.html

时间: 2024-10-09 14:26:44

Java程序远程无法执行nohup命令的相关文章

在android程序中怎么执行ifconfig命令来修改android 的ip地址,

1.引入: import android.provider.Settings; import android.content.ContentResolver; ps:在Setting.System中有以下标志 WIFI_USE_STATIC_IP WIFI_STATIC_IP WIFI_STATIC_NETMASK WIFI_STATIC_GATEWAY WIFI_STATIC_DNS1 and WIFI_STATIC_DNS2 2.在AndroidManifest中加入<uses-permis

Java中通过jsch来连接远程服务器执行linux命令

有时候你可能需要通过代码来控制执行linux命令实现某些功能. 针对这类问题可以使用JSCH来实现,具体代码如下: public class CogradientImgFileManager{ private static final Logger log = LoggerFactory.getLogger(CogradientImgFileManager.class); private static ChannelExec channelExec; private static Session

java程序中调用dos shell命令 -- 此处以调用doc命令为例

/**  *  Java调用windows的DOS命令  */ public class RunDocInJava{     public static void main(String[] args) {         InputStream ins = null;         String[] cmd = new String[] { "cmd.exe", "/c", "ipconfig" };  // 命令行         try 

linux 后台执行nohup 命令,终端断开无影响

nohup /root/start.sh & 在shell中回车后提示: [~]$ appending output to nohup.out原程序的的标准输出被自动改向到当前目录下的nohup.out文件,起到了log的作用.断开ssh 连接后,程序运行不受影响.已验证 使用 jobs 查看任务. 以下转自:http://www.cnblogs.com/allenblogs/archive/2011/05/19/2051136.html 1.nohup 用途:不挂断地运行命令. 语法:nohu

Java使用ganymed工具包执行LINUX命令教程

了解更多开发技巧,请访问,架构师小跟班官网:https://www.jiagou1216.com package com.jiagou; import ch.ethz.ssh2.Connection;import ch.ethz.ssh2.Session;import ch.ethz.ssh2.StreamGobbler; import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;imp

java程序员常用的linux命令

作为一个java后端开发者,在日常工作中肯定会有和linux打交道的时候.下面我整理了一些开发中可能需要用到的一些命令(写这篇随笔前,我也没有什么操作经验,主要防止自己忘记这些操作命令,以后有用到新的命令再修改). 以下的操作是通过SecureCRT对服务器进行远程连接,使用WinSCP来进行文件上传. 一.用户相关的一些命令 1.新建用户  adduser username  (只有root有权限新增用户) 2.修改用户密码  passwd username 3.切换用户 su usernam

java程序员常用的cmd命令

1.查看端口号或者进程号使用情况 1.1.查看所有端口占用情况 C:\Users\Administrator>netstat -ano 活动连接 协议 本地地址 (ip:端口) 外部地址 状态 PID(进程号) TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 912 TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4 TCP 0.0.0.0:1536 0.0.0.0:0 LISTENING 632 TCP 0.0.0.0:1537 0.0.0.0:

Java程序执行Linux命令(JSP运行其他程序)

java程序中要执行linux命令主要依赖2个类:Process和Runtime 首先看一下Process类: ProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程,并返回 Process 子类的一个实例,该实例可用来控制进程并获得相关信息.Process 类提供了执行从进程输入.执行输出到进程.等待进程完成. 检查进程的退出状态以及销毁(杀掉)进程的方法. 创建进程的方法可能无法针对某些本机平台上的特定进程很好地工作,比如,本机窗口进程,守护进程,M

Java程序执行Linux命令

java程序中要执行linux命令主要依赖2个类:Process和Runtime http://blog.csdn.net/a19881029/article/details/8063758 java连接centos服务器,并执行命令 java连接需要用到ganymed-ssh2. 将 ganymed-ssh2-build210.jar 加入到项目的lib中