运行 bash 后台脚本循环将 jar 命令的结果写入文件
Run bash script loop in background which will write result of jar command to file
我是 运行ning bash 脚本的新手。 (如果我给的标题不正确,你可以建议我。)
我想在循环中使用 bash 脚本 运行 一个 jar 文件。然后它应该将 jar 命令的输出写入某个文件。
Bash 文件 datagenerate.sh
#!/bin/bash
echo Total iterations are 500
for i in {1..500}
do
the_output="$(java -jar data-generator.jar 10 1 mockData.csv data_200GB.csv)"
echo $the_output
echo Iteration $i processed
done
no_of_lines="$(wc -l data_200GB.csv)"
echo "${no_of_lines}"
我运行正在使用命令 nohup sh datagenerate.sh > datagenerate.log &
在脚本上方运行。因为我想在后台 运行 这个脚本,所以即使我从 ssh
注销,它也应该保持 运行ning 并且输出应该进入 datagenerate.log
.
但是当我 运行 以上命令并按下回车键或关闭终端时,它会结束该过程。只有 Total iterations are 500
正在登录到输出文件。
让我知道我错过了什么。我按照以下两个链接创建了上面的 shell 脚本:link-1 & link2.
你应该看看这个:
https://linux.die.net/man/1/screen
使用此程序,您可以在命令或脚本仍然 运行 时关闭 shell。它们不会被中止,您可以稍后重新开始会话。
nohup sh datagenerate.sh > datagenerate.log &
nohup 应该在不使用 screen 程序的情况下以这种方式工作,但是根据您的发行版,您的 sh shell 可能会链接到 dash。
只需让您的脚本可执行:
chmod +x datagenerate.sh
和运行你的命令是这样的:
nohup ./datagenerate.sh > datagenerate.log &
我是 运行ning bash 脚本的新手。 (如果我给的标题不正确,你可以建议我。) 我想在循环中使用 bash 脚本 运行 一个 jar 文件。然后它应该将 jar 命令的输出写入某个文件。 Bash 文件 datagenerate.sh
#!/bin/bash
echo Total iterations are 500
for i in {1..500}
do
the_output="$(java -jar data-generator.jar 10 1 mockData.csv data_200GB.csv)"
echo $the_output
echo Iteration $i processed
done
no_of_lines="$(wc -l data_200GB.csv)"
echo "${no_of_lines}"
我运行正在使用命令 nohup sh datagenerate.sh > datagenerate.log &
在脚本上方运行。因为我想在后台 运行 这个脚本,所以即使我从 ssh
注销,它也应该保持 运行ning 并且输出应该进入 datagenerate.log
.
但是当我 运行 以上命令并按下回车键或关闭终端时,它会结束该过程。只有 Total iterations are 500
正在登录到输出文件。
让我知道我错过了什么。我按照以下两个链接创建了上面的 shell 脚本:link-1 & link2.
你应该看看这个: https://linux.die.net/man/1/screen
使用此程序,您可以在命令或脚本仍然 运行 时关闭 shell。它们不会被中止,您可以稍后重新开始会话。
nohup sh datagenerate.sh > datagenerate.log &
nohup 应该在不使用 screen 程序的情况下以这种方式工作,但是根据您的发行版,您的 sh shell 可能会链接到 dash。 只需让您的脚本可执行:
chmod +x datagenerate.sh
和运行你的命令是这样的:
nohup ./datagenerate.sh > datagenerate.log &