繁体   English   中英

通过 ssh 在远程机器上运行 jar 作为后台进程

[英]Run jar on remote machine as background process over ssh

我想通过 ssh 连接在远程机器上运行一个 jar 作为后台进程。 远程机器上有 bash 脚本来执行 jar

#!/bin/sh
export JAVA_HOME=/location/of/java/
export PATH=$JAVA_HOME/bin:$PATH
nohup java -jar jar_name.jar config.properties &

如果我直接从远程机器( sudo ./start_script.sh )执行上述脚本,jar 作为后台进程启动,stdout 被定向到与 jar 相同的文件夹中的nohup.out 但是当我从本地机器运行脚本时: ssh vm_name 'sudo ./start_script.sh' ,进程启动。 但它会阻塞并且输出被定向到本地终端。

有没有办法实现这一目标?

编辑:我需要以 root 身份运行脚本并将参数传递给脚本,为 JAVA_HOME 添加占位符路径以避免混淆

您需要告诉ssh作为终端连接。

ssh vm_name -t 'sudo ./start_script.sh'

很可能认识到您不是作为终端打开并相应地改变行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM