Strace查看后台进程日志输出

 在linux下有的时候程序的运行出现问题了,但是这时如果没有将日志打印到文件,想查看一下日志的输出都看不了,停了程序重新跑又一时不能浮现问题,是一件很纠结的事情

       这个时候就可以利用strace 来变通的看一下日志,strace是一个用来跟踪进程执行时的系统调用和所接收的信号的程序会将程序的系统调用情况打印出来
       而我们的日志输出,比如printf到了系统调用这一层,使用的是write,于是我们可以利用这一点动态的查看printf的输出
 

比如如下命令来查看进程pid为17742的printf输出

strace -ewrite -s 300 -f -p 17742 2>&1 | sed -n '/write(1,/s/\\n".*$//gp'

# -ewrite 输出写入到指定文件中的数据

# -s 300 的意思是字符串输出显示时的最大长度,默认是32个字节,对于printf的打印可能不够,这里我们设置为200

# -f 的意思是需要跟踪子进程forks,这里对线程同样适用,不加这个参数只能输出main所在的线程的信息

# -p 17742 指定要跟踪的进程号为 17742

转载于:https://my.oschina.net/ruokluo/blog/1939657

你可能感兴趣的:(Strace查看后台进程日志输出)