python-3.x - 具有 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 )
解决方案
推荐阅读
- react-native - React Router - 从路由器参考中获取历史记录
- dart - 是否可以将声音保存在本地存储中 - Flutter
- java - Selenium -- 无法定位元素
- javascript - div 容器中的自定义 div 没有重叠问题
- nginx - 如何将此 Apache VHost 迁移到 nginx
- login - 通过 Google 登录获取实际大小的 photoURL?
- java - 从自定义代码更新进度条消息,取决于最后执行的操作
- r - 错误:无效的下标类型“列表”(Webscraping)
- laravel - 如何在 Laravel eloquent 中连接两个表
- reactjs - 反应原生获取更新状态以进行保存