这对我来说是一个有点复杂的案例。
我想跟踪'script1_sparkSubmit01.sh'是否完成,这是由Main.sh触发的;如果没有,则等待它完成;如果完成,则继续执行main.sh中的剩余脚本。
主脚本。主脚本:main.sh
ksh script1_sparkSubmit01.sh 2>&1 &
pid=$!
echo $pid
while [ 1 ]
do
[ -n "$pid" ] && sleep 60 || break
done
ksh script2_sparkSubmit02.sh 2>&1 &
另一个脚本:script1_sparkSubmit01.sh。
spark-submit --jars $sqldriver_jar_path $spark_jar_path/table-load_2.11-1.0.jar >> ${log_dir}/$log_file_name1 2>&1 &
目前,pid给了一些随机的值,当我查找时,在当前shell中是不可用的。然而,我看到 script1_sparkSubmit01.sh 的'spark-submit'命令在当前 shell 中运行。
请大家帮忙。
从'script1_sparkSubmit01.sh'触发的脚本中提取PID--对我来说确实可行。
ksh script1_sparkSubmit01.sh 2>&1 &
while [ 1 ]
do
pid=$(ps -aux | grep 'table-load_2.11-1.0.jar' | grep -v "grep" | awk '{print $2}')
[ -n "$pid" ] && sleep 30 || break
done
ksh script2_sparkSubmit01.sh 2>&1 &