这是一个很低级的错误:首先看我们脚本的名字 tcpdump.sh ,然后再看我们需要杀死进程的名字 grep tcpdump,
grep选项会把当前执行的脚本名字同样的过滤出来 ,所以这个脚本当执行完一轮操作以后,同样的被kill掉了,所以无法形成死循环。
最简单的解决办法,把脚本换个名字 OK!!
[root]#bash -x tcpdump.sh + int=1+ one=2+ (( 1 != 2 ))+ sleep 1++ date +%F-%H:%M:%S+ STIME=2014-08-12-22:11:50+ sleep 30+ tcpdump -i eth0 -s 0 -w tcpdum.2014-08-12-22:11:50 host 192.168.1.23tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes+ ps -ef+ grep tcpdump+ grep -v grep+ awk '{print $2}'+ xargs kill -9Killed