def main(sys_args: List[str] = sys.argv[1:]) -> NoReturn: args = parse_args(sys_args) defs.init(args) global logger logger = get_logger() ebphd = EBPHDaemon(args) if args.operation == "start": try: ebphd.start_daemon() except Exception as e: logger.error('Unable to start daemon', exc_info=e) sys.exit(-1) elif args.operation == "stop": try: ebphd.stop_daemon() except Exception as e: logger.error('Unable to stop daemon', exc_info=e) sys.exit(-1) elif args.operation == "restart": try: ebphd.restart_daemon() except Exception as e: logger.error('Unable to restart daemon', exc_info=e) sys.exit(-1) elif args.nodaemon: ebphd.loop_forever()
2020-Jul-13 William Findlay Created this. """ import os import sys from pprint import pformat import ctypes as ct from enum import IntEnum, IntFlag, unique, auto from typing import List, Dict from bcc import BPF from ebph.logger import get_logger from ebph import defs logger = get_logger() def calculate_profile_magic() -> int: """ Calculate the magic number that corresponds to ebpH profiles. """ from hashlib import sha256 from ebph.version import __version__ # take x.x part of version version = '.'.join(__version__.split('.')[:2]).encode('ascii') return int(sha256(version).hexdigest(), 16) & 0xFFFF_FFFF_FFFF_FFFF