具有subprocess.Popen调用对于xprop的python打包应用程序是否需要为其运行终端?

问题描述

我在python中为Linux开发了一个应用程序时间跟踪应用程序,我正在使用xprop获取活动窗口,然后是PID,窗口名称和进程名称。这个应用程序将跟踪数据发送到远程服务器,因此,在所有依赖项的情况下,我使用pyinstaller制作了一个Linux软件包。

我目前正在CentOS 7中工作。我编写了一项服务,该服务将使应用程序保持打开状态(我进行了所有必要的更改,以使该服务在用户的桌面环境中运行)。

在测试服务时,我看到在使用全新的桌面重新启动后,该服务运行良好,但是未在服务器上收集数据。但是,一旦我打开终端,一切都会正常。

如果代码如下,是否有必要为subprocess.check_output / subprocess.Popen()打开一个终端:

active_win = subprocess.check_output(["xprop","-root","_NET_ACTIVE_WINDOW"]).decode('utf-8').split('#')[1].strip()

root = Popen( ['xprop','-root','_NET_ACTIVE_WINDOW'],stdout = PIPE )
stdout,stderr = root.communicate()
m = re.search( b'^_NET_ACTIVE_WINDOW.* ([\w]+)$',stdout )
if m is not None:
    window_id   = m.group( 1 )

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)