如果 X 服务器在一段时间内没有收到任何输入,则运行脚本

如果 X 服务器在一段时间内没有收到任何输入,则运行脚本

我想在我不在机器旁边时运行某个脚本,这样它就会自动运行,但在我工作时不会打扰我。我创建了 bash 脚本并将其与 cron 排队,但它似乎没有运行(它没有产生打开浏览器选项卡所需的效果)。

脚本位于/home/suseika/.bin/stackoverflowfanatic

#!/bin/bash
idle=`xprintidle` # tells how long in milliseconds x server haven't been receiving any events
required_idle_time=3600000 # one hour in milliseconds
if [[ $idle -gt $required_idle_time ]];
then
        chromium http://stackoverflow.com/
        echo idle was $idle
        xdotool mousemove 12 13 # A quick and dirty way to send an event to x server
        xdotool mousemove 12 14
        echo now idle is `xprintidle` # for debugging
fi

required_idle_time如果我将其设置为 0 并使用以下方式手动运行,则脚本可以正常工作sleep 1 && stackoverflowfanatic

以下是我使用 cron 进行排队的方法:

/etc/cron.d/stackoverflow

0,30 *     * * *     suseika /home/suseika/.bin/stackoverflowfanatic

答案1

根据设计,Cron 无法访问您的 X 会话。您可能应该在后台循环中运行它,.xsession或者类似方法。

相关内容