【问题标题】:Origin of message from Xlib: "Killed"来自 Xlib 的消息来源:“Killed”
【发布时间】:2014-11-06 07:30:57
【问题描述】:

我正在使用 ImLib2 从 Xlib 应用程序中定期抓取图像;并使用 libxdo 向应用程序窗口发送假密钥信号。大约 10 分钟后,我的命令行程序以“Killed”消息终止。

我对 X 编程很陌生。有谁知道“Killed”消息是从哪里发送的?

【问题讨论】:

  • 编译时包含所有警告和调试信息 (gcc -Wall -Wextra -g)。启用core 转储(可能使用ulimit -c)。如果您得到这样的转储,请使用gdb 调试器进行事后分析。

标签: linux xlib


【解决方案1】:

您是否使用尾随“&”启动命令行程序以将其置于后台?如果是这样,您可能还需要在命令之前执行“nohup”。假设你的程序叫做grab.sh,你应该像这样调用它:

nohup grab.sh &

如果你这样做

echo TMOUT is $TMOUT

看看

TMOUT is 600

然后发生的事情是您调用命令的终端会话在$TMOUT 不活动秒后被终止,从而终止了您的进程。 nohup 命令将防止您的进程被杀死。

【讨论】:

  • 唉,不,我在前台运行它,没有 &。不过我之前没有听说过 nohup,所以无论如何我都会尝试一下......
【解决方案2】:

问题似乎是由于在每次调用imlib_context_set_image 后没有调用imlib_free_image 函数。内部循环现在看起来更像这样:

Imlib_Image ii = imlib_create_image_from_drawable(0,x,y,w,h,1);
imlib_context_set_image(ii);
DATA32 *data = imlib_image_get_data();
examine_data(data);
imlib_free_image();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多