我jar從控制臺啟動了一個(gè),它運(yùn)行良好:nohup /usr/bin/java -jar payara-micro-5.183.jar myapp.war > log.out 2>&1 & echo $!當(dāng)我從遠(yuǎn)程計(jì)算機(jī)運(yùn)行相同的命令時(shí)sshj,它返回一個(gè) pid 但在控制臺中看不到該進(jìn)程,實(shí)際上該進(jìn)程沒有運(yùn)行。在這兩種情況下,我都通過 ssh、公鑰使用同一用戶登錄。通過sshj以下方式運(yùn)行命令的代碼:try (Session session = sshClient.startSession()) { final Command cmd = session.exec("nohup /usr/bin/java -jar payara-micro-5.183.jar myapp.war > log.out 2>&1 & echo $!"); String response = (IOUtils.readFully(cmd.getInputStream()).toString()); // response shows a pid number cmd.join(2, TimeUnit.SECONDS); System.out.println("\n** exit status: " + cmd.getExitStatus()); //exit status is 0}
從 sshj 啟動時(shí),來自控制臺的命令不運(yùn)行
寶慕林4294392
2021-10-28 14:02:42