Ps aux:多次显示相同的脚本

时间:2014-01-15 11:33:52

标签: bash ubuntu

我有一个简单的脚本来检查要下载的文件。 问题是经过一段时间我可以看到他多次跑步,在不同的时间开始,即使我只开始他一次:

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

1 个答案:

答案 0 :(得分:4)

while循环中的任何内容是否在后台运行?可以想象它与父进程具有相同的名称。

您可以通过运行ps wafux并查看进程树来检查某些进程是否是子进程。

如果它们彼此“不相关”,您很可能只是多次运行该脚本,而其他进程尚未完成。