KTRACE(1)

명칭
ktrace - 커널 프로세스의 트레이스를 실시한다

서식
ktrace [-aCcdi] [-f trfile] [-g pgrp | -p pid] [-t trstr] ktrace [-adi] [-f trfile] [-t trstr] command

해설
ktrace 유틸리티는, 지정한 프로세스의 커널의 트레이스 로그를 취합니다. 커널 트레이스 정보는 파일 ktrace.out 에 기록됩니다. 트레이스 되는 커널 동작에는, 시스템 콜, namei 변환, 시그널 처리, I/O 처리가 포함됩니다.

일단 프로세스의 트레이스를 실시하도록(듯이) 하면(자), 트레이스 데이터는 프로세스가 종료하는지, 트레이스 포인트가 클리어 될 때까지 기록계속 됩니다. 트레이스 한 프로세스는 방대한 양의 로그를 급속히 만들기 (위해)때문에, 유저는 프로세스의 트레이스를 실시하기 전에 트레이스를 취소하는 방법을 기억해 두는 것을 강하게 추천합니다. 유저가 실행하고 있는 모든 프로세스의 트레이스 동작을 취소하려면 , 이하의 명령로 충분합니다. 이 커멘드가 root 권한으로 실행되었을 경우에는, 모든 프로세스에 대해서 트레이스의 취소를 합니다.

    $ ktrace -C

트레이스 파일은 그대로는 읽을 수 없으므로, kdump(1) (을)를 사용해 해석해 주세요.

옵션으로서는, 이하의 것이 있습니다.

-a  기존의 트레이스 파일을 재구축 하지 않고, 뒤로 추가해 갈 것입니다.

-C  유저가 실행하고 있는 모든 프로세스의 트레이스 동작을 오프로 합니다. root 가 실행했을 경우는 시스템의 모든 프로세스의 트레이스가 오프가 됩니다.

-c  지정한 파일이나 프로세스에 대한 트레이스 포인트를 클리어 합니다.

-d  지정한 프로세스의 현재의 child process 모두에 대해서 트레이스를 실시합니다.

-f trfile
    트레이스 기록을 ktrace.out 의 것인지 비교적 trfile 에 기록합니다.

-g pgid
    프로세스 그룹내의 모든 프로세스의 트레이스를 온 (오프)으로 합니다( -g 플래그는 1 개 밖에 지정할 수 없습니다).

-i  지정한 프로세스가 향후 생성하는 모든 child process에 대해, 트레이스 플래그를 계승시킵니다.

-p pid
    지정한 프로세스 ID 의 트레이스를 실시합니다 (또는 취소합니다) ( -p 플래그는 1 개 밖에 지정할 수 없습니다).

-t trstr
    이 캐릭터 라인 인수는, 커널 트레이스 포인트의 1 개를 1 캐릭터로 표현하고 있습니다. 이하의 겉(표)는, 캐릭터와 트레이스 포인트의 대응 관계를 나타내고 있습니다.

    c   시스템 콜의 트레이스
    n   namei 변환의 트레이스
    i   I/O 의 트레이스
    s   시그널 처리의 트레이스
    u   유저에서의 트레이스
    w   콘텍스트 스위칭
    +   트레이스 포인트의 디폴트 집합, 즉 c, n, i, s, u (을)를 트레이스 합니다.

command
    지정한 트레이스 플래그로 command (을)를 실행합니다.

-p, -g, command (은)는 서로 배타적입니다. 동시에 이용할 수 없습니다.

사용예
# 프로세스 ID 34 의 프로세스 모든 커널 동작의 트레이스를 실시합니다.
    $ ktrace -p 34

# 프로세스 그룹 ID 15 의 모든 프로세스의 커널 동작의 트레이스를 실시해, 현재 및 미래의 child process 모두에게 트레이스 플래그를 건네줍니다.
    $ ktrace -idg 15

# 프로세스 ID 65 의 프로세스의 모든 트레이스를 취소합니다.
    $ ktrace -cp 65

# 프로세스 ID 70 의 프로세스와 그 모든 child process의, 시그널에 관한 트레이스를 취소합니다.
    $ ktrace -t s -cdp 70

# 프로세스 ID 67 의 프로세스의 I/O 에 관한 트레이스를 유효하게 합니다.
    $ ktrace -ti -p 67

# 명령 "w" 를 실행해, 시스템 콜만의 트레이스를 실시합니다.
    $ ktrace -tc w

# "tracedata" 파일에 대한 모든 트레이스를 취소합니다.
    $ ktrace -c -f tracedata

# 유저가 소유하고 있는 모든 프로세스의 트레이스를 취소합니다.
    $ ktrace -C

관련 항목
kdump(1)

버그
trfile 하지만 보통 파일의 경우만 일합니다.

역사
ktrace 명령은 4.4BSD (으)로부터 실장되었습니다.