脚本无法在 crontab 中正常运行,没有路径或权限问题

脚本无法在 crontab 中正常运行,没有路径或权限问题

我使用 geany 文本编辑器,它有一个命令行选项可以列出所有打开的文档。从命令行运行时,以下命令可以正常工作:

/usr/bin/geany --list-documents > /home/myname/geanylist.txt

我想在 cron 中定期运行这个,但它不起作用。我尝试过:

  • 将上述命令直接放入我的 crontab
  • 将上述命令包装在 bash 脚本中,然后在我的 crontab 中调用它
  • 在脚本中定义所有正常路径和其他环境变量
  • 将 .bashrc 的全部内容复制到脚本中
  • 将 stderr 和 stdout 重定向到日志文件(无帮助)

无论我做什么,当 crontab 运行时,~/geanylist.txt 都不会包含 的输出geany --list-documents,尽管它会包含脚本生成的任何其他输出。我不知所措。我该如何让它工作?除了 cron 之外,还有其他系统实用程序可以让我做到这一点吗?

我能想到的最好的解决方案是创建一个带有循环的脚本,该脚本运行命令然后休眠 24 小时 - 肯定有更好的方法吗?

编辑:

  • /usr/bin/geany --list-documents从 CL 运行时,的结果是标准输出上文件(通常是 ascii txt)的完整路径列表,每行一个。
  • 当将命令或脚本添加到我的 crontab 时,我使用crontab -e,并将$EDITOR设置为nano。这与我向 crontab 添加许多其他命令的方式相同,所有这些命令都正常工作(这些其他命令都不会geany以任何方式尝试运行)。

答案1

猜测:从 cron 运行的 geany 无法访问你的 DISPLAY;尝试添加DISPLAY=:0

答案2

解决方案在这里找到:https://sourceforge.net/p/geany/bugs/999/

* * * * * /usr/bin/geany --display=:0.0 --list-documents > /home/myname/geany_files.txt

相关内容