我正在尝试使用 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。如何在后台运行每个应用程序?
1 回答
慕斯王
TA贡献1864条经验 获得超2个赞
加上前缀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 重定向添加到同一个日志文件,这在出现问题时可能会有所帮助
添加回答
举报
0/150
提交
取消