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