2014-01-15 8 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 /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

Смежные вопросы