每個 Linux 進(jìn)程都有它自己的生命周期,比如,創(chuàng)建、執(zhí)行、結(jié)束和清除。每個進(jìn)程也都有各自的狀態(tài),顯示進(jìn)程中當(dāng)前正在發(fā)生什么。進(jìn)程可以有如下幾種狀態(tài):
- D(不可中斷休眠狀態(tài)) —— 進(jìn)程正在休眠并且不能恢復(fù),直到一個事件發(fā)生為止。
- R(運行狀態(tài)) —— 進(jìn)程正在運行。
- S(休眠狀態(tài)) —— 進(jìn)程沒有在運行,而在等待一個事件或是信號。
- T(停止?fàn)顟B(tài)) —— 進(jìn)程被信號停止,比如,信號 SIGINT 或 SIGSTOP。
- Z(僵死狀態(tài)) —— 標(biāo)記為 <default> 的進(jìn)程是僵死的進(jìn)程,它們之所以殘留是因為它們的父進(jìn)程適當(dāng)?shù)劁N毀它們。如果父進(jìn)程退出,這些進(jìn)程將被 init 進(jìn)程銷毀。
如要查看指定進(jìn)程的狀態(tài),可以使用如下命令:
ps -C processName -o pid=,cmd,stat
例如:
使用示例
本文參考自 《Linux Shell命令行及腳本編程實例詳解 》