linux - 一个简单的 bash 脚本异常内存使用

标签 linux bash memory-leaks xdotool

我想弄清楚为什么这个简单的 bash 脚本在运行时内存占用量不断增加

#!/bin/bash

while true
do
    pid=$(xdotool search --name "TeamViewer")
    if [ ! -z "$pid" ]; then
        xdotool windowminimize $pid
    fi
    sleep 1
done

当我运行 watch cat/proc/meminfo 并运行脚本时,我看到 memFreememAvailable 值以稳定的速度下降.它会继续发生,直到系统内存不足并且不得不回退到交换,这会导致我的系统出现问题

由于 --sync,脚本的原始版本(如下)使用内存的速度甚至更高,我认为

#!/bin/bash

while true
do
    xdotool search --name --sync "TeamViewer" windowminimize
    sleep 5
done

任何帮助将不胜感激

我使用的是运行 Linux Mint 18.1 和 8GB RAM 的 2011 Macbook Pro

最佳答案

不确定到底发生了什么,但问题已以某种方式自行解决。运行此脚本不再占用内存。

#!/bin/bash

while true
do
    pid=$(xdotool search --name "TeamViewer")
    if [ ! -z "$pid" ]; then
        xdotool windowminimize $pid
    fi
    sleep 1
done

不过这个还是可以的。

#!/bin/bash

while true
do
    xdotool search --name --sync "TeamViewer" windowminimize
    sleep 5
done

可能是我的测试方法有缺陷,导致我相信它们都耗尽了内存。

关于linux - 一个简单的 bash 脚本异常内存使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46387073/

相关文章:

linux - 内核如何区分线程和进程

linux - 使用本地 Linux 组对 SVN 用户进行身份验证?

linux - 使用 Emacs 编辑 GVFS 挂载文件

静态计算地址的对齐页

java - 如何分析JVM垃圾收集?

bash - 使用 Bash 打开并将数据写入文本文件?

linux - 结合greps制作脚本来计算文件夹中的文件

arrays - 从包含双引号的数组中展开参数

java - 适配器泄漏内存?

php - 调试 LAMP/CakePHP 站点内存泄漏?