linux上进程状态查询
linux上进程有5种状态:
1. 运行(正在运行或在运行队列中等待)
2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
ps工具标识进程的5种状态码:
D 不可中断 uninterruptible sleep (usually IO)
R 运行 runnable (on run queue)
S 中断 sleeping
T 停止 traced or stopped
Z 僵死 a defunct ("zombie") process
注: 其它状态还包括W(无驻留页), <(高优先级进程), N(低优先级进程), L(内存锁页).
可以用下面命令查看进程状态
ps -aux
列出类似程序树的程序显示(显示进程下有哪些子进程)
ps -axjf
找出与 cron 与 syslog 这两个服务有关的 PID 号码
ps aux | egrep '(cron|syslog)'
也可以这样使用ps格式输出来查看进程状态:
ps -eo user,stat..,cmd
user 用户名
uid 用户号
pid 进程号
ppid 父进程号
size 内存大小, Kbytes字节.
vsize 总虚拟内存大小, bytes字节(包含code+data+stack)
share 总共享页数
nice 进程优先级(缺省为0, 最大为-20)
priority(pri) 内核调度优先级
pmem 进程分享的物理内存数的百分比
trs 程序执行代码驻留大小
rss 进程使用的总物理内存数, Kbytes字节
time 进程执行起到现在总的CPU暂用时间
stat 进程状态
cmd(args) 执行命令的简单格式
例子:
查看当前系统进程的uid,pid,stat,pri, 以uid号排序.
ps -eo pid,stat,pri,uid --sort uid
查看当前系统进程的user,pid,stat,rss,args, 以rss排序.
ps -eo user,pid,stat,rss,args --sort rss
在Linux下,还有一种方法检查某个进程是否存在:利用/proc文件系统. /proc/pid/stat里面有进程的状态,进程可执行文件名等.如果该文件不存在了,那进程肯定退出了.如果存在,可以检查状态和文件名是否正确.效率可能比PS还是高一些,因为/proc是虚拟文件系统,存在与内存中.
如何利用/proc文件系统
cat /proc/pid/status
这里pid是你的进程ID,看看输出结果,有一栏是State
你要利用/proc文件系统时,int fd = open( "/proc/pid/status", O_RDONLY );
这里pid是实际的进程的pid,如果open失败,刚进程显然不存在,然后读取该文件的内容,找出State
分享到:
相关推荐
### Linux下的进程状态详解 在Linux系统中,进程是操作系统进行资源分配和调度的基本单位,是程序执行的一个实例。...总之,掌握Linux进程状态不仅能够帮助我们诊断问题,还能够在日常运维工作中提高系统的整体性能。
进程状态的转换是通过内核中的调度程序实现的。当进程从“内核运行态”转移到“睡眠状态”时,内核才会进行进程切换操作。在内核态下运行的进程不能被其它进程抢占,而且一个进程不能改变另一个进程的状态。为了避免...
Linux 允许进程查询内核以获得其父进程的 PID,或者其任何子进程的执行状态。例如,进程可以创建一个子进程来执行特定的任务,然后调用诸如 wait() 这样的一些库函数检查子进程是否终止。如果子进程已经终止,那么,...
1 Linux进程的睡眠和唤醒 在Linux中,仅等待CPU时间的进程称为就绪进程,它们被放置在一个运行队列中,一个就绪进程的状 态标志位为TASK_RUNNING。一旦一个运行中的进程时间片用完, Linux 内核的调度器会剥夺这个...
进程状态也是进程调度的重要组成部分,包括: - 新建(NEW) - 就绪(READY) - 运行(RUNNING) - 阻塞(BLOCKED) - 终止(TERMINATED) 进程调度涉及到上下文切换,即保存当前进程的状态,加载下一个进程的状态...
提供的"word文档供学习参考"可能包含了实验步骤、示例代码和相关理论解释,对于深入理解和实践Linux进程编程非常有帮助。 在实际操作中,结合`man`手册页和实验指导,学习者可以更全面地掌握这些概念和操作,从而...
Linux 进程状态有五种:运行态、可运行态、等待态、暂停态、僵死态。其中,运行态是进程正在使用 CPU 运行的状态;可运行态是进程已分配到除 CPU 外所需要的其它资源,等待系统把 CPU 分配给它之后即可投入运行;...
`ps`命令是最常用的查看进程状态的工具之一,它能够提供系统上所有正在运行的进程的快照。当你输入`ps aux | less`时,你会看到一个详细的列表,其中包括进程ID(PID)、所属用户、CPU和内存使用率、虚拟内存大小、...
Linux进程可以处于以下几种状态: - **运行状态 (R)**:进程正在运行或准备运行。这包括正在CPU上运行的进程(Running)和等待运行机会的进程(Runnable)。 - **睡眠状态 (Sleeping)**:进程暂时不需要CPU,因为...
在Linux中,我们可以使用`ps`命令查看当前系统的进程状态,或者使用`top`和`htop`工具实时监控进程的性能。`kill`和`killall`命令则用于管理和终止进程,而`nice`和`renice`可以调整进程的优先级,影响其在CPU时间片...
使用 `jobs` 命令可以查看当前终端中的所有后台进程状态。添加 `-l` 参数可以显示更详细的信息,包括进程ID (`PID`)、任务的状态 (`running`, `stopped`, 或 `Terminated`) 等。 ```bash jobs -l ``` #### 4. 在前...
综上所述,Linux进程管理涉及多个方面,包括进程控制块的结构设计、进程状态的管理、进程创建和终止的机制、进程调度策略以及进程间通信。掌握这些知识点对于深入理解Linux操作系统和进行系统编程都至关重要。
在Unix/Linux系统中,...综上所述,Unix/Linux进程池管理涉及多方面的技术,包括进程创建、任务调度、进程间通信、资源管理和错误处理。理解并掌握这些知识点对于开发高效、稳定的银行系统或其他服务型应用至关重要。
ps命令是Linux系统中监控进程状态的重要工具。通过掌握其多种选项和用法,用户可以更有效地管理和分析系统中的进程。 本文通过深入分析ps命令的多种用法和应用场景,为读者提供了一个全面的指南,帮助他们熟练地...
Linux 操作系统中,僵死进程(Zombie Process)是一种特殊的进程状态,它是指一个进程已经终止,但是其父进程没有通过wait或waitpid函数来回收它的状态信息,而使得进程所占用的资源无法释放,导致系统资源的浪费。...
进程有很多属性,包括进程 ID(PID),父进程和父进程的 ID(PPID),启动进程的用户 ID(UID)和所归属的组(GID),进程状态,进程执行的优先级,进程所连接的终端名,进程资源占用等。 1.3 父进程和子进程 父...