猿问

在 bash 脚本中通过 ssh 运行许多 java 应用程序

我正在尝试使用 Java 应用程序优化一些实验。同一个应用程序在许多机器上。我想通过带有 ssh 的 bash 脚本运行所有这些。


我有一个 bash 脚本,它有一个while循环来运行应用程序。像这样


while [ $COUNTER -lt $WORKERS ]

do

  ssh  ubuntu@host "java java-app.jar" > /data/some-logs.log 

  ((COUNTER++))

  ((IP_BEGINS++))

done

但是,当我运行脚本时,我必须稍等片刻,然后为每台机器按 Ctrl+C。如何在后台运行每个应用程序?


大话西游666
浏览 153回答 1
1回答

慕斯王

加上前缀nohup并附加到&命令,这将在后台运行它。while [ $COUNTER -lt $WORKERS ]do  ssh  ubuntu@host "nohup java -jar java-app.jar > /data/some-logs.log 2>&1 &"  ((COUNTER++))  ((IP_BEGINS++))done您可能需要处理 的引号和位置,&以确保远程 ssh 命令在后台运行,而不是您的本地 ssh将 stderr 重定向添加到同一个日志文件,这在出现问题时可能会有所帮助
随时随地看视频慕课网APP

相关分类

Java
我要回答