답변:
Linux에서는 프로그램이 파일을 쓰더라도 (윈도우와 달리) 파일이 잠기지 않습니다.
프로세스가 완료되었는지 확인하려면 다음을 사용하십시오.
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