2014-01-15 4 views
1

다운로드 할 파일을 확인하는 간단한 스크립트가 있습니다. 문제는 잠시 후 내가 한 번만 그 시작하더라도, 다른 시간에 시작, 그를 여러 번 실행 볼 수 있습니다 :Ps aux : 동일한 스크립트를 여러 번 표시합니다.

ps aux | grep _db 
root  2804 0.0 0.0 11288 1756 ?  S 00:26 0:06 /bin/bash /script/downloader/downloader_db.sh 
root  8606 0.0 0.0 11284 872 ?  S 12:18 0:00 /bin/bash /script/downloader/downloader_db.sh 
root  8649 0.0 0.0 11168 680 pts/0 S 12:18 0:00 /bin/bash /script/downloader/downloader_db.sh 
root  11552 0.0 0.0 11272 860 ?  S 11:25 0:00 /bin/bash /script/downloader/downloader_db.sh 
root  11562 0.0 0.0 11152 672 pts/0 S 11:25 0:00 /bin/bash /script/downloader/downloader_db.sh 
root  39150 0.0 0.0 11172 1644 pts/0 S 10:51 0:01 /bin/bash /script/downloader/downloader_db.sh 

내가 rc.local에에서 nohup을 사용하여 스크립트를 시작 :

nohup /script/downloader/downloader_db.sh &> /dev/null & 

스크립트 :

#!/bin/bash 

while true; do 

    while IFS=$'\t' read -a line; do 
     ... 
    sleep 2 
    done < <(mysql --batch -u${user} -p${password} ${database} -e "${query}" -h ${host}) 
    sleep 10 
done 

답변

3

while 루프에서 아무것도 백그라운드에서 실행되어 있습니까? 부모 프로세스와 이름이 같다고 생각할 수 있습니다.

ps wafux을 실행하고 프로세스 트리를보고 일부 프로세스가 하위 프로세스인지 확인할 수 있습니다.

서로 "관련이 없다"면 스크립트를 두 번 이상 실행할 가능성이 높으며 다른 프로세스는 아직 완료되지 않은 것입니다.

+0

당신이 옳습니다. 나는이 스크립트에서 nohup으로 다른 프로세스를 보내고있다. – Orlo

관련 문제