我想在我不在机器旁边时运行某个脚本,这样它就会自动运行,但在我工作时不会打扰我。我创建了 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
或者类似方法。