【问题标题】:Octave script no longer runs in CrontabOctave 脚本不再在 Crontab 中运行
【发布时间】:2021-10-04 22:31:19
【问题描述】:

因此,我有一些运行各种 Octave 脚本文件的 crontab:

*/10 * * * 1-5 /usr/local/bin/octave "/path/to/octave/script.m" >/dev/null 2>&1

直到几天前,它还在正常工作,但由于某种我找不到的原因,现在停止工作了。脚本文件通过 API 下载数据,然后附加到现有文件。我不认为这是 cronjob 或 cron 守护进程或诸如几乎相同的 R 脚本 crontab 之类的问题,

*/10 * * * 1-5 /usr/bin/Rscript "/path/to/R/script.R" >/dev/null 2>&1

它还下载和附加数据,仍在正常工作。明显的失败只是调用运行 Octave 脚本。

我已经做了一些明显的检查,例如:

  • 检查文件是否仍然可执行(它们是)

  • 检查来自 /usr/local/bin/octave 的符号链接是否仍然完好(它们是)

  • 检查脚本文件是否仍然可以从 Octave 手动运行(它们可以)

  • grep CRON /var/log/syslog 似乎表明一切正常,即我得到以下输出

    Oct 5 00:01:01 username CRON[12110]: (username) CMD (/usr/local/bin/octave "/path/to/octave/script.m" >/dev/null 2>&1)

我还能做些什么来追踪这个问题的根源?

【问题讨论】:

  • 不是将所有输出重定向到/dev/null,而是将其重定向到一个文件。然后查看文件的内容,看看显示了哪些错误信息。

标签: cron octave


【解决方案1】:

感谢 Cris 将输出定向到文件的评论,我能够找到此问题的根源,这是最近对 Octave 的 .octaverc 启动文件进行的编辑。

我最近添加了一行来表达对特定图形工具包的偏好,这是 .octaverc 文件中的第一行。当 crontab 作业调用 Octave 时,此行抛出错误。通过将此条目移动到 .octaverc 的最后一行,并更改 crontab 以使用 Octave 的命令行版本:

*/10 * * * 1-5 /usr/local/bin/octave-cli "/path/to/octave/script.m" >/dev/null 2>&1 

被调用的“/path/to/octave/script.m”现在按预期运行。因此,我仍然收到一条错误消息:

error: graphics_toolkit: fltk toolkit is not available
error: called from
graphics_toolkit at line 88 column 5
/home/user/.octaverc at line 3 column 1

但由于命令行界面不需要 GUI,并且 .octaverc 中的 addpaths 等在抛出错误之前运行,因此脚本的运行不会中断。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-30
    • 2011-03-21
    • 1970-01-01
    相关资源
    最近更新 更多