在Mac OS X上使用cron截屏

物理迈克尔

为了分析我自己的计算机使用率,而不是监视任何人(尽管这使我不寒而栗),我想让cron每分钟捕获一次当前屏幕。

 * * * * * /bin/bash -c "/usr/sbin/screencapture /somedir/screen.png"

在crontab中将执行并进行屏幕截图。但是,它完全是黑色的,因为它不像我那样运行。知道如何允许Cron作业捕获我的屏幕吗?

更新:我say whoami在相同的cron命令中添加了a ,并确认它正在以我的用户身份运行(不涉及sudo或其他用户)。我以自己的身份从终端访问crontab。

因此,它像我一样运行,但未连接到我的窗口系统。有任何想法吗?

托博特

如果您查看屏幕捕获手册页的末尾,您会看到它说:

要在通过ssh登录时捕获屏幕内容,必须
在与loginwindow相同的mach引导层次结构中启动screencapture:

PID = loginwindow的pid 
sudo launchctl bsexec $ PID screencapture [options]

因此,我认为您可以在cron调用的shell脚本中执行以下操作:

#/ bin / sh 
loginwindowpid =`ps axo pid,comm | grep'[l] oginwindow'| sed -n's#* \([^] * \)。* $#\ 1#p'` 
sudo launchctl bsexec $ loginwindowpid屏幕截图/somedir/screen.png

当然,您需要将userid设置为不需要sudo密码。
那是你用visudo命令在/ etc / sudoers中设置的

youruserid ALL =(全部)NOPASSWD:全部

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章