【发布时间】:2015-05-13 23:40:16
【问题描述】:
我正在尝试通过 crontab 在我的 Raspberry Pi 上运行脚本。
我已经创建了脚本:ScreenShot.sh
文件内容为:
#!/bin/sh
export DISPLAY=:0 && \
import -window root -resize 20% /pathtofolder/screenshot.jpg
当我通过 SSH 运行它时效果很好
/home/pi/ScreenShot.sh
我已使脚本可执行。
然后我通过sudo crontab -e将它添加到cron
*/1 * * * * /home/pi/ScreenShot.sh
我希望脚本每运行 1 分钟(稍后我会扩展它,但出于测试目的,我将它设置为 1 分钟)。
由于某种原因,脚本没有在 crontab 中运行,也没有截图。
我注意到如果我通过sudo 运行脚本:
sudo /home/pi/ScreenShot.sh
我收到以下错误:
No protocol specified
import.im6: unable to open X server `:0' @ error/import.c/ImportImageCommand/368.
我假设当 Crontab 运行时,它以 Root 身份运行脚本,这可能会导致失败。
我在 crontab 上启用了日志记录,如果我查看日志,我会看到以下内容:
Nov 6 06:26:01 IRDigitalDisplay /USR/SBIN/CRON[12634]: (root) CMD (/home/pi/ScreenShot.sh)
Nov 6 06:26:02 IRDigitalDisplay /USR/SBIN/CRON[12633]: (CRON) info (No MTA installed, discarding output
所以我假设出了点问题。但是,它不会将错误写入日志,而是尝试通过电子邮件将其发送给我.....
我的问题是:
- 如何让我的 ImageMagick 脚本在 crontab 中运行,每 X 分钟拍摄一次屏幕截图,并将其保存到预定文件夹中?
【问题讨论】:
-
嗨,我想通了,您需要以 Pi 用户身份运行 crontab 作业: */5 * * * * sudo -u pi /home/pi/ScreenShot.sh
标签: imagemagick crontab