私のアプリケーションスクリプトを呼び出すscript()がありますrun.sh
。run.sh
与えられた時間にこれを複数回実行できます。
run.shスクリプトの一般的な形式は次のとおりです。
#!/bin/bash
# Running DALTON JOB: Helix
dir=$(pwd)
echo "-----------------------------------------------"
export DALTON_TMPDIR=/mnt/raid0/scratch
export OMP_NUM_THREADS=6
source /opt/intel/compilers_and_libraries_2017.0.098/linux/bin/compilervars.sh intel64
source /opt/intel/mkl/bin/mklvars.sh intel64
echo "//-------process started----------------------------//"
./application.sh -mb 14550 input.mol output.out
echo "//-------process finished----------------------------//"
application.sh
スクリプト内でPIDを取得できますかrun.sh
? ($$
スクリプト自体のPIDを提供することがわかりました。)
また、アプリケーションのPIDは常に親スクリプトよりも数値的に大きいことがわかりましたが、これは偶然の一致かもしれません。
ベストアンサー1
実行中のPIDを表示するには、明示的にapplication.sh
バックグラウンドに置き、PIDをキャプチャしてから終了するのを待つことをお勧めします。
# ...
./application.sh -mb 14550 input.mol output.out &
app_pid=$!
echo "The application pid is: $app_pid"
wait "$app_pid"
# ...