linux中访问运行中程序的输出

前言

在 linux 中我们经常会使用&符号让进程在后台运行,例如:

1
nohup java -jar app.jar &

但是这样的话在终端就看不到输出了,有时候临时需要排查问题看不到输出就 GG 了。

解决办法

其实可以利用proc系统文件来访问程序对应的输出:

  1. 首先获取到进程对应的PID
  2. 通过tail命令读取输出:
1
2
3
4
#获取标准输出
tail -f /proc/<PID>/fd/1
#获取错误输出
tail -f /proc/<PID>/fd/2