【发布时间】:2014-12-26 06:33:53
【问题描述】:
每个人。 我写了一个bash脚本来监控cpu、内存和网络信息。 cpu和内存部分一切都很好。但说到网络部分,事情就变得有趣了。 我使用“ifstat”来监控网络。 “ifstat”是一个块线程,会在屏幕上连续打印网络IO。我的 bash 脚本如下所示: #!/bin/bash
#ignore other less important codes
......
ifstat > network.info &
while true
do
...
done
我用 重击 xx.sh 运行它并使用 ctrl + c 杀死它。奇怪的事情出现了,虽然这个 bash 进程已经被杀死,但是 ifstat 进程仍然在后台运行。我用 ps -e | grep ifstat 检查出来。它总是在那里,但我手动杀死了它。
在我看来,ifstat进程是xx.sh的一个子进程,所以我希望在我杀死xx.sh的时候它会被杀死。但显然不是!!! 有人可以告诉我为什么吗? 以及如何在我杀死 xx.sh 进程时自动杀死它?
【问题讨论】:
标签: linux multithreading bash shell