jsyssig

   jsyssig

  사용법


	jsyserr -a [-e errno] [-t second][-o output][-S][-X]
	jsyserr -n execname [-e errno] [-t second][-o output][-S][-X]
	jsyserr -p pid [-e errno] [-t second][-o output][-S][-X]
	jsyserr -F syscall[,...] { -a | -n execname | -a pid } [-e errno] [-t second][-o output][-S][-X][-A][-0]
	jsyserr -P syscall[,...] { -a | -n execname | -a pid } [-e errno] [-t second][-o output][-S][-X]
	jsyserr -T syscall[,...] { -a | -n execname | -a pid } [-e errno] [-t second][-o output][-S][-X][-A][-0]
	jsyserr -V

	Options are as follows:

	-?                print this help
	-0                show time information
	-A                print process name and arguments instead of execname with -F or -T option
	-a                examine system call errors for all processes
	-e errno          filter by errno
	-F syscall[,...]  print system call directly
	-n execname       examine system call errors for the 'execname'
	-o output         specify output file
	-P syscall[,...]  examine the number of system calls for the specified system call
	-p pid            examine system call errors for the 'pid'
	-S                print only dtrace script
	-t second         examine system calls during the second
	-V                show version
	-T syscall[,...]  print user stack trace directly
	-X                except system call error of 'dtrace' commands
  설명

jsyssig 명령어는 Solars 10 버전에서 제공하는 dtrace 명령어를 이용하여, 프로세스에게 전달된 시그널 정보를 보여준다.
시그널을 전달하는 방법은 크게 두가지로 분류된다. 첫번째는 프로세스가 직접 특정 프로세스에게 전달하는 것이고, 두번째는 커널이 특정 조건에서 전달하는 것이다.
jsyssig 명령어는 성공적으로 프로세스에게 전달된 시그널 정보를 보여준다.

다음과 같이 아무 옵션 없이 jsyssig 명령어를 실행하면, 1 초 동안 발생한 시그널 정보를 보여준다.

# /opt/JSparm/bin/jsyssig
SIG_NUM COUNT SIG_NAME 18:23:24
     14     2 SIGALRM

다음은 5 초 간격으로 3 번 시그널 정보를 보여준다.

# /opt/JSparm/bin/jsyssig 5 3
SIG_NUM COUNT SIG_NAME 18:34:33
     18     2 SIGCHLD
     14    10 SIGALRM
SIG_NUM COUNT SIG_NAME 18:34:38
     14    10 SIGALRM
SIG_NUM COUNT SIG_NAME 18:34:43
     18     1 SIGCHLD
     14    10 SIGALRM

-n 옵션을 지정하면 시그널을 보낸 프로세스와 시그널을 받은 프로세스 이름도 함께 보여준다.

# /opt/JSparm/bin/jsyssig -n 5 3
          SENDER        RECIPIENT SIG_NUM COUNT SIG_NAME 18:35:30
           pkill             more      15     1 SIGTERM
           sched              ksh      18     1 SIGCHLD
           sched             Xorg      14    10 SIGALRM
          SENDER        RECIPIENT SIG_NUM COUNT SIG_NAME 18:35:35
           sched             Xorg      14    10 SIGALRM
          SENDER        RECIPIENT SIG_NUM COUNT SIG_NAME 18:35:40
           sched             Xorg      14     9 SIGALRM

-F 옵션을 지정하면 시그널이 발생하는 즉시 다음과 같이 출력한다.

# /opt/JSparm/bin/jsyssig -F
          SENDER  SPID        RECIPIENT  RPID SIG_NUM SIG_NAME
           sched     0             Xorg   765      14 SIGALRM
           sched     0             Xorg   765      14 SIGALRM
           sched     0          syslogd   531      14 SIGALRM
           sched     0             Xorg   765      14 SIGALRM
           sched     0             Xorg   765      14 SIGALRM
           pkill  7574             more  7305      15 SIGTERM
           pkill  7574             more  7012      15 SIGTERM
           sched     0              ksh  6995      18 SIGCHLD
           sched     0             Xorg   765      14 SIGALRM
           sched     0             Xorg   765      14 SIGALRM

-0 옵션을 -F 옵션과 함께 지정하면 시그널이 발생한 시간을 표시한다.

# /opt/JSparm/bin/jsyssig -F
.......WALLTIMESTAMP           SENDER  SPID        RECIPIENT  RPID SIG_NUM SIG_NAME
2018 Nov 16 21:11:50            sched     0             Xorg   733      14 SIGALRM
2018 Nov 16 21:11:50            sched     0             Xorg   733      14 SIGALRM
2018 Nov 16 21:11:51            sched     0             Xorg   733      14 SIGALRM
2018 Nov 16 21:11:51            sched     0             Xorg   733      14 SIGALRM
2018 Nov 16 21:11:52            sched     0             Xorg   733      14 SIGALRM
2018 Nov 16 21:11:52            sched     0             Xorg   733      14 SIGALRM

jsyssig 명령어의 출력의 의미는 다음과 같다.

컬럼 설명
SENDER 시그널을 보낸 프로세스이름
SPID 시그널을 보낸 프로세스의 PID
RECIPIENT 시그널을 받은 프로세스 이름
RPID 시그널을 받은 프로세스의 PID
SIG_NUM 시그널 번호
COUNT 지정한 시간 간격 동안에 시그널이 발생한 횟수이다.
SIG_NAME 시그널 번호에 일치하는 시그널 이름
TIME 컬럼 헤더이 있는 자리에 바로 시간을 표시한다.

다음은 jsyssig 명령어의 옵션이다.

옵션설명
-0 -0 옵션을 -F 옵션과 함께 사용된다.

-0 옵션을 지정하면, 출력되는 시그널 정보의 각 라인에 시간을 표시한다.

-F -F 옵션을 지정하면, 시그널이 발생하는 즉시 보여준다.
-n -n 옵션을 지정하면, 프로세스 이름도 함께 보여준다.
-S -S 옵션을 지정하면, dtrace 명령어가 실행할 dtrace script를 보여준다.
-s signals -s 옵션을 시그널 번호를 지정하면, 지정한 시그널 번호에 대해서만 조사한다.
signals 앞에 !를 붙이면, 지정한 시그널을 제외한 시그널에 대해서만 조사한다.

시그널을 여러개 지정할 경우에는 콤마로 분리한다.

-V -V 옵션을 지정하면, 명령어의 버전 정보를 보여준다.
interval [count] 데이타를 수집할 시간 간격과 횟수를 지정한다.

interval 지정하지 않으면, 1로 지정된다.
count 를 지정하지 않으면, 1로 지정된다.