BashからホストスクリプトのPIDを取得する

BashからホストスクリプトのPIDを取得する

私のアプリケーションスクリプトを呼び出すscript()がありますrun.shrun.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"
# ...

おすすめ記事