Python Unix-哪个应用程序处于前台?

Python Unix-哪个应用程序处于前台?,python,linux,unix,redhat,Python,Linux,Unix,Redhat,我需要能够确定Unix中的某个应用程序/二进制文件是否在前台运行 我不想看CPU利用率或内存利用率,因为从技术上讲,应用程序可能在后台执行长时间运行的任务 我不一定对代码示例感兴趣。这是使用Python或其他脚本库可以实现的吗?我强烈推荐Python软件包,它非常适合系统获取有关派生进程和所有其他进程的信息。进程对象的方法正在运行()似乎就是您想要的方法。如果使用subprocess.Popen生成进程,则可以使用来检查它是否正在运行。程序使用X还是控制台?它是什么意思“在前台运行”?你的意思是

我需要能够确定Unix中的某个应用程序/二进制文件是否在前台运行

我不想看CPU利用率或内存利用率,因为从技术上讲,应用程序可能在后台执行长时间运行的任务


我不一定对代码示例感兴趣。这是使用Python或其他脚本库可以实现的吗?

我强烈推荐Python软件包,它非常适合系统获取有关派生进程和所有其他进程的信息。进程对象的方法
正在运行()
似乎就是您想要的方法。

如果使用
subprocess.Popen
生成进程,则可以使用来检查它是否正在运行。程序使用X还是控制台?它是什么意思“在前台运行”?你的意思是应用程序是否有焦点或类似的东西?Bakuriu-是的,我想确定应用程序是否有焦点。“焦点”是窗口管理器的功能,而不是程序。确定哪个进程具有“焦点”将取决于您正在使用的窗口系统(XWindows?)和特定的桌面/窗口管理器(KDE、Gnome、XFCE等?),甚至“焦点”的概念也是模糊的,因为在X中,焦点可以用鼠标指针移动。
正在运行
对于后台进程可以返回true;返回值
False
仅表示它正在睡眠或处于空闲状态,而不是它在前台。在这种情况下,您需要找到调用它的终端(.parent()),线索在父级所拥有的“等待通道”中。如果正在等待在前台运行的进程,则通道为sys_rt_SIGSSUSPEND;如果正在等待用户输入(即,进程在后台),则通道为n_tty_read。此通道存储在/proc//wchan中,其中是进程ID。您将无法从中判断进程是否在后台,shell正在等待新的前台进程。