strace工具的使用

130 阅读1分钟

说明

strace是linux下调试分析诊断工具,可以跟踪程序执行时进程的系统调用以及收到的信号

测试

查看当前进程

➜  ~ ps -la             
F S   UID     PID    PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S  1000    2808    2806  0  80   0 - 299613 ep_pol tty2    00:02:19 Xorg
0 S  1000    2872    2806  0  80   0 - 56532 do_pol tty2     00:00:00 gnome-session-b
0 S  1000   21361    3663  0  80   0 -  3527 do_wai pts/0    00:00:00 man
0 S  1000   21369   21361  0  80   0 -  2961 wait_w pts/0    00:00:00 less
0 S  1000   23921   17534  0  80   0 -   694 hrtime pts/2    00:00:00 mynginx
4 R  1000   23922   15365  0  80   0 -  3940 -      pts/1    00:00:00 ps

使用strace跟踪mynginx进程

mynginx进程是启动在pts/2上的,当关闭这个终端时候,可以看到mynginx收到了SIGHUP信号。

➜  ~ sudo strace -e trace=signal -p 23921 
strace: Process 23921 attached
--- SIGHUP {si_signo=SIGHUP, si_code=SI_USER, si_pid=17534, si_uid=1000} ---
+++ killed by SIGHUP +++