Process

這些程序是什麼,為什麼我不能殺死它們?

  • April 4, 2016

(在 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

試了很多次…

任何幫助表示讚賞。

如果您在ps ax沒有 grep 的情況下執行,您將看到列標題:

PID   TT  STAT      TIME COMMAND

??TT列中 - 這是該過程的控制終端。表示該??程序未與終端關聯。

U中的STAT表示程序處於不間斷睡眠狀態。這就解釋了為什麼你不能殺死它——在核心中的不間斷睡眠中被阻塞並且不能被喚醒以被終止。當程序最終退出不可中斷狀態時,它會注意到這個信號並死掉。

右邊的數字在COMMAND列中——這是程序的名稱。至於那些過程是什麼,我不知道。

引用自:https://unix.stackexchange.com/questions/274213