linux 上的进程状态
Status of process on linux
我在下面的数组中有一个 pid
的列表
All_Process_Pid
对于每个进程,我想通过其 pid
检查进程的状态。
更确切地说,对于每个pid
,我想知道它对应的过程是不是-
运行
完成
已停止
如何在 bash 中执行此操作?
首先,进程状态比"Running"、"Done"和"Stopped"多,来自man ps :
PROCESS STATE CODES
Here are the different values that the s, stat and state output
specifiers (header "STAT" or "S") will display to describe the
state of a process:
D uninterruptible sleep (usually IO)
R running or runnable (on run queue)
S interruptible sleep (waiting for an event to complete)
T stopped by job control signal
t stopped by debugger during the tracing
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
您可以使用命令 ps:
通过其 pid(进程 ID)获取一个进程的状态
ps -q <pid> -o state --no-headers
来自 人 ps:
-q pidlist
Select by PID (quick mode). This selects the processes whose
process ID numbers appear in pidlist. With this option ps reads the
necessary info only for the pids listed in the pidlist and doesn't
apply additional filtering rules. The order of pids is unsorted and
preserved. No additional selection options, sorting and forest type
listings are allowed in this mode. Identical to q and --quick-pid.
如果您的 bash 脚本中有 pid "All_Process_Pid" 数组,那么您可以:
for i in "${All_Process_Pid[@]}"
do
echo "process $i has the state $(ps -q $i -o state --no-headers)"
done
我在下面的数组中有一个 pid
的列表
All_Process_Pid
对于每个进程,我想通过其 pid
检查进程的状态。
更确切地说,对于每个pid
,我想知道它对应的过程是不是-
运行
完成
已停止
如何在 bash 中执行此操作?
首先,进程状态比"Running"、"Done"和"Stopped"多,来自man ps :
PROCESS STATE CODES
Here are the different values that the s, stat and state output
specifiers (header "STAT" or "S") will display to describe the
state of a process:
D uninterruptible sleep (usually IO)
R running or runnable (on run queue)
S interruptible sleep (waiting for an event to complete)
T stopped by job control signal
t stopped by debugger during the tracing
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
您可以使用命令 ps:
通过其 pid(进程 ID)获取一个进程的状态ps -q <pid> -o state --no-headers
来自 人 ps:
-q pidlist
Select by PID (quick mode). This selects the processes whose
process ID numbers appear in pidlist. With this option ps reads the
necessary info only for the pids listed in the pidlist and doesn't
apply additional filtering rules. The order of pids is unsorted and
preserved. No additional selection options, sorting and forest type
listings are allowed in this mode. Identical to q and --quick-pid.
如果您的 bash 脚本中有 pid "All_Process_Pid" 数组,那么您可以:
for i in "${All_Process_Pid[@]}"
do
echo "process $i has the state $(ps -q $i -o state --no-headers)"
done