背景
都12月份了,怎么还有11月初的进程在运行??是不是僵死??
但是!容器里面没有ps命令,怎么办?
proc目录解决问题
cd /proc/19890/fd/
然后cat 1
--看有无输出
在work1上 cat 1是有输出(不过好像和控制台输出有点不一样,但是无论怎么样,都是证明了进程正在运行)
ls -l /proc | grep 19890
看时间,完全可以代替ps -ef
当然,这个动作前提是我root登录
如下几条确认了是僵尸进程
- EventDate异常(从业务角度证明了肯定不是这几天的进程)
ls -l /proc | grep 19890
看时间(从技术角度证明了僵死好久)- 控制台无输出 (佐证了僵死)
- 进程状态是Zombie,见如下对比图
进程状态字典项:
D Uninterruptible sleep (usually IO)
R Running or runnable (on run queue)
S Interruptible sleep (waiting for an event to complete)
T Stopped, either by a job control signal or because it is being traced.
W paging (not valid since the 2.6.xx kernel)
X dead (should never be seen)
Z Defunct ("zombie") process, terminated but not reaped by its parent.
kill掉以上几条
参考
Java自带的命令.md 主要是jps
文件系统.md 里面讲了proc目录