这些进程是什么?为什么我不能杀死它们?

这些进程是什么?为什么我不能杀死它们?

(在 OS X 10.11.3 上)我在启动需要侦听端口 8040 的 java 进程时遇到问题。获取 BindException。看来其他人已经在听了。快速检查确认:

lsof -i TCP| fgrep LISTEN | grep 8040
jspawnhel 13566 alon  255u  IPv6 0x2a5edc8fe0a093d7      0t0  TCP *:8040 (LISTEN)
jspawnhel 14482 alon  255u  IPv6 0x2a5edc8fe0a093d7      0t0  TCP *:8040 (LISTEN)
jspawnhel 81770 alon  255u  IPv6 0x2a5edc8fe0a093d7      0t0  TCP *:8040 (LISTEN)

所以,我试图弄清楚这些过程是什么,但我不明白 ps 向我展示了什么:

ps ax | grep "13566\|14482\|81770"
13566   ??  U      0:00.00 313:316
14482   ??  U      0:00.00 324:327
81770   ??  U      0:00.00 301:304

“??”是什么意思?意思是?在这种情况下 313:316 是什么?

即使使用-9,我也无法杀死它:

kill -9 13566
ps ax | grep 13566
13566   ??  U      0:00.00 313:316

尝试了很多次...

任何帮助表示赞赏。

答案1

如果您ps ax在没有 grep 的情况下运行,您将看到列标题:

PID   TT  STAT      TIME COMMAND

??位于TT列中——这是进程的控制终端。表示??该进程不与终端关联。

U列中的表示STAT进程处于不可中断睡眠状态。这就解释了为什么你不能杀死它——它被阻塞在内核中的不间断睡眠中,并且不能被唤醒以终止。当进程最终退出不可中断状态时,它会注意到该信号并死亡。

右侧的数字位于该COMMAND列中——这就是进程的名称。至于那些过程是什么,我不知道。

相关内容