我正在嘗試使用 Java 應(yīng)用程序優(yōu)化一些實(shí)驗(yàn)。同一個(gè)應(yīng)用程序在許多機(jī)器上。我想通過(guò)帶有 ssh 的 bash 腳本運(yùn)行所有這些。我有一個(gè) bash 腳本,它有一個(gè)while循環(huán)來(lái)運(yùn)行應(yīng)用程序。像這樣while [ $COUNTER -lt $WORKERS ]do ssh ubuntu@host "java java-app.jar" > /data/some-logs.log ((COUNTER++)) ((IP_BEGINS++))done但是,當(dāng)我運(yùn)行腳本時(shí),我必須稍等片刻,然后為每臺(tái)機(jī)器按 Ctrl+C。如何在后臺(tái)運(yùn)行每個(gè)應(yīng)用程序?
1 回答

慕斯王
TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊
加上前綴nohup并附加到&命令,這將在后臺(tái)運(yùn)行它。
while [ $COUNTER -lt $WORKERS ]
do
? ssh? ubuntu@host "nohup java -jar java-app.jar > /data/some-logs.log 2>&1 &"
? ((COUNTER++))
? ((IP_BEGINS++))
done
您可能需要處理 的引號(hào)和位置,&以確保遠(yuǎn)程 ssh 命令在后臺(tái)運(yùn)行,而不是您的本地 ssh
將 stderr 重定向添加到同一個(gè)日志文件,這在出現(xiàn)問(wèn)題時(shí)可能會(huì)有所幫助
添加回答
舉報(bào)
0/150
提交
取消