我需要根据各种文件分区将历史数据加载到配置单元表中。当前使用nohup命令调用Spark提交。我正在尝试创建一个包含所有nohup命令的脚本,这些脚本将在成功完成第一个nohup命令后顺序执行。
我尝试过
nohup 1
if [ ? = 0 ]; then
nohup 2
但是下一个nohup2命令在nohup1中的spark作业完成之前开始执行。
当前脚本:
nohup sh /home/spark_load1.sh
#After successful load1, start the next nohup
nohup sh /home/spark_load2.sh
#After successful load2, start the next nohup
nohup sh /home/spark_load3.sh
我希望第二次nohup执行仅在先前的nohup成功的情况下发生。
nohup sh /home/spark_load1.sh
#After successful load1, start the next nohup
nohup sh /home/spark_load2.sh
#After successful load2, start the next nohup
nohup sh /home/spark_load3.sh
这可以通过这种方式完成:
nohup sh /home/spark_load1.sh && sh /home/spark_load2.sh && sh /home/spark_load3.sh
并且不要忘了在末尾添加与号&
,否则,如果连接断开,脚本将会停止。最好使用shebang来避免每次在外壳程序外部运行(将其作为外壳程序脚本的第一行添加并使其可执行))
#!/usr/bin/sh
在这种情况下,行会更短
nohup /home/spark_load1.sh && /home/spark_load2.sh && /home/spark_load3.sh