2013-03-11 88 views
2

我尝试向特定进程发送SIGTSTP信号,但如何确定进程是否实际上在Linux中使用C库函数或系统调用暂停?确定进程是否已挂起

+2

上下文通常有帮助。你为什么想知道?你究竟在做什么? – Nemo 2013-03-11 03:49:49

+0

出于好奇,我想在C程序中做到这一点 – jctank 2013-03-11 03:50:51

+3

我相信你对C的局限性感到困惑; C甚至不需要多个进程,这是你的问题的先决条件。因此,这不是一个C问题。如果您按照“如何确定某个进程是否已暂停[*在此处插入操作系统信息*]?”进行研究,那么您可能会想出更好的答案。 – Sebivor 2013-03-11 04:13:50

回答

6

/proc/[pid]/stat中读取。

man page,你可以从这个文件中获得一个进程的状态:

状态%c从字符串“RSDZTW”,其中R是运行

一个字符,S是 睡眠在可中断的等待中,D正在等待不可中断 磁盘睡眠,Z是僵尸,T被追踪或停止(在一个信号上),并且W 正在寻呼。

+0

这真的有帮助,谢谢 – jctank 2013-03-11 03:56:04

+0

@jctank酷,没问题。给予好评? – Anthony 2013-03-11 04:10:23

+1

@ anthony-arnold,用户需要15点声望来投加选票,因为我发现你的答案很好,我会代表他投。 – 2013-03-11 04:13:20