FreeBSD の dtrace で signal を見る2017年09月27日 12時33分38秒

特権ユーザを用いるか、/dev/dtrace を一般ユーザでもアクセスできるようにしておく。

FreeBSD で dtrace を起動し、別のウィンドウからコマンドを入力。シグナルの処理を見てみたかった。

# dtrace -n 'proc:::signal*{printf("%d %s", pid, execname);}'
dtrace: description 'proc:::signal*' matched 3 probes
dtrace: buffer size lowered to 3m
CPU     ID                    FUNCTION:NAME
  0  39443                 none:signal-send 12 intr
  1  39443                 none:signal-send 940 screen
  1  39445              none:signal-discard 940 screen

  0  39443                 none:signal-send 12 intr
  0  39443                 none:signal-send 14110 csh
  0  39443                 none:signal-send 14110 csh
  1  39443                 none:signal-send 14125 sleep
  0  39443                 none:signal-send 14075 sh

こちらが入れたコマンド。

% sleep 100
% ps -a | grep sleep
14125  4  S+   0:00.00 sleep 100
14127  5  S+   0:00.00 grep sleep
% pkill sleep
% kill 14125
screen の画面の切替えなどでもシグナルが送られていたようだ。