我检查了"-n“的功能--”显示活动的TCP连接,但是,地址和端口号是用数字表示的,没有尝试确定名称。“但是我不明白为什么"-n“可以让netstat立即退出?
发布于 2021-04-13 18:57:09
通过快速检查,我没有看到与您相同的对"-n“选项的描述,并且它不会使netstat连续运行。
因为您没有指定您正在使用的版本和确切的命令,所以我尝试了RH7.6附带的版本(net-tools 2.10-alpha)和源代码中的最新版本(net-tools 3.14-alpha)。net-tools的源代码可以在github 1中找到。
由于我找不到您所描述的确切选项,我尝试了所有不需要参数的标志(没有组合)。据我所知,导致netstat不能立即退出的唯一选项是'-g‘和'-c’。'-c‘很有意义,因为它是连续运行netstat的标志。对于'-g‘,它不像逐行读取/proc/net/igmp和/proc/net/igmp6文件的连续行为那样明显。第一个文件读取速度很快,但igmp6文件花费的时间要长得多(每~1秒1行)。'-g‘选项并不是真正连续的,只是需要很长时间才能完成。
从代码中看,连续执行的唯一原因是(在代码中出现了4次):
if (i || !flag_cnt)
break;
wait_continous();'i‘是函数的返回码,而' break’命令是从无限的for循环中中断,所以基本上只有在设置了flag_cnt (仅当提供了'-c‘时才会发生),并且之前的命令没有错误时,代码才会连续运行。
对于上述特定问题,可能有以下几个原因:
正如我所说的,我无法复制原始问题中的问题,也找不到上面描述的任何标志。此外,除了'-c‘之外,没有任何标志导致netstat连续运行。
如果你仍然想解决这个问题,我建议你看看你的代码,或者至少指定你使用的net-tools版本。内核版本也很重要,因为由于缺少内核支持,一些代码可能会被编译出来。
https://stackoverflow.com/questions/60565506
复制相似问题