回答:
Linuxでは、プログラムは(Windowsとは異なり)ファイルに書き込んでも、ファイルはロックされません。
プロセスが完了したかどうかを確認するには、次を使用します。
while [[ 1 ]]; do
  pgrep dbprocess &>/dev/null
  if [[ $? -eq 0 ]]; then
    echo still running
  else
    echo finished
    # start ftp transfer
  fi
  sleep 2
done
プロセスがファイルを開いているかどうかを確認するには、次を使用できます
lsof <file> 開いたプロセスを一覧表示します <file>
ls -l /proc/$(pgrep db-process)/fd プロセスによって開かれているファイル記述子をリストします db-process
waitこれを実現するために組み込みのシェルを使用できます。
wait組み込みは、単にシェルは完全にバックグラウンドジョブを待って一時停止する原因となります。待機する特定のジョブを渡すか、すべてのジョブを待機させることができます。
例えば:
echo $(date): starting
sleep 5 &
echo $(date): do something else
wait
echo $(date): background job finished
その結果:
Thu Sep 25 12:06:48 EDT 2014: starting
Thu Sep 25 12:06:48 EDT 2014: do something else
Thu Sep 25 12:06:53 EDT 2014: background job finished