一,工具简介

该工具会追踪程序在监听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
03-20 09:27