我有一个简单的脚本来检查要下载的文件。 问题是经过一段时间我可以看到他多次跑步,在不同的时间开始,即使我只开始他一次:
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
答案 0 :(得分:4)
while
循环中的任何内容是否在后台运行?可以想象它与父进程具有相同的名称。
您可以通过运行ps wafux
并查看进程树来检查某些进程是否是子进程。
如果它们彼此“不相关”,您很可能只是多次运行该脚本,而其他进程尚未完成。