검색

20.3.4. SystemTap을 사용하여 애플리케이션의 시스템 호출 모니터링

download PDF

SystemTap 툴을 사용하면 커널 이벤트에 대한 사용자 정의 이벤트 처리기를 등록할 수 있습니다. strace 와 비교하여 사용하기가 어렵지만 SystemTap 은 더 효율적이고 복잡한 처리 로직을 사용할 수 있습니다.

사전 요구 사항
절차
  1. 콘텐츠를 사용하여 my_script.stp 파일을 생성합니다.

    probe begin
    {
      printf("waiting for syscalls of process %d \n", target())
    }
    
    probe syscall.*
    {
      if (pid() == target())
        printf("%s(%s)\n", name, argstr)
    }
    
    probe process.end
    {
      if (pid() == target())
        exit()
    }
  2. 모니터링할 프로세스의 프로세스ID(pid )를 찾습니다.

    $ ps -aux
  3. 스크립트를 사용하여 SystemTap 을 실행합니다.

    # stap my_script.stp -x pid

    pid 값은 프로세스 ID입니다.

    스크립트가 로드된 커널 모듈로 컴파일됩니다. 이렇게 하면 명령을 입력하고 출력을 가져오는 사이에 약간의 지연이 발생합니다.

  4. 프로세스에서 시스템 호출을 수행하면 호출 이름과 해당 매개 변수가 터미널에 출력됩니다.
  5. 프로세스가 종료되면 스크립트가 종료되거나 Ctrl+C 를 누르면 종료됩니다.
추가 리소스
  • SystemTap Beginners 가이드
  • SystemTap Tapset 참조
  • strace 기능과 근접한 더 큰 SystemTap 스크립트는 /usr/share/systemtap/examples/process/strace.stp 로 사용할 수 있습니다. 스크립트를 실행하려면 다음을 수행합니다.

    # stap --example strace.stp -x pid

    또는

    # stap --example strace.stp -c "cmd args …​"

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.