一,工具简介
该工具会追踪程序在监听TCP连接时调用的内核函数。它无法查看UDP或UNIX域套接字。
当程序实际准备接受连接时,它可以用于动态更新负载均衡器,从而避免在初始化过程中出现“停机时间”。
二,代码示例
#!/usr/bin/env python
import os
from socket import inet_ntop, AF_INET, AF_INET6, SOCK_STREAM, SOCK_DGRAM
from struct import pack
import argparse
from bcc import BPF
from bcc.utils import printb
# Arguments
examples = """Examples:
./solisten.py # Stream socket listen
./solisten.py -p 1234 # Stream socket listen for specified PID only
./solisten.py --netns 4242 # " for the specified network namespace ID only
./solisten.py --show-netns # Show network ns ID (useful for containers)
"""
parser = argparse.ArgumentParser(
description="Stream sockets listen",
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog=examples)
parser.add_argument("--show-netns", action="store_true",
help