运行两个使用前台的脚本

时间:2019-01-26 22:03:52

标签: bash shell

我正在尝试使用脚本启动elasticsearch实例,然后启动kibana实例(需要等到ES启动)。我不能只做./bin/elasticseach && ./bin/kibana或类似的事情,因为第一个脚本在前台运行,这意味着第二个命令将无法运行。在确保kibana仅在ES启动并运行时才启动的最佳方式是什么?

2 个答案:

答案 0 :(得分:1)

如果您无法确定ES何时启动,我只能建议:

./bin/elasticseach & sleep 10 && ./bin/kibana

您必须在什么地方估计要准备多少时间

答案 1 :(得分:0)

假设./bin/elasticsearch阻塞命令行,直到命令行“ up”,您可以只使用“;”在命令之间逐个运行它们。

./bin/elasticseach; ./bin/kibana

但是由于elasticsearch只是阻塞命令行直到停止,所以您可以做其他事情。您可以像守护程序一样运行它,因此它不会阻塞命令行。 (Here is the documentation about starting and stopping es

./bin/elasticseach -d -p PID; ./bin/kibana; kill `cat PID`